1. 前言:
    博主是Android码农,所以文章是以Android为基础来集成的.
  2. uni-app相关介绍
    官网:https://uniapp.dcloud.io/
    io.dcloud.EntryProxy的api文档址:https://www.dcloud.io/docs/sdk/android/
  3. SDK下载地址:https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/103

开始集成
1:打开android studio 新建一个空项目
2:先下载SDK,需要用到里面的arr文件和一些资源文件,在HBuilder-Integrate-AS文件夹里面找到并且复制出里面的lib.5plus.base-release.aar文件到as项目里面的app/libs目录下面,并在main目录下面新建asstes/apps和asstes/data目录.如图:Android原生运行uniapp使用5+app创建项目时的SDK集成步骤(一)_第1张图片
Android原生运行uniapp使用5+app创建项目时的SDK集成步骤(一)_第2张图片
3:打开app/build.gradle文件,填写相关配置并同步一下,如图:
Android原生运行uniapp使用5+app创建项目时的SDK集成步骤(一)_第3张图片
4:在as项目里面打开AndroidManifest.xml,填写相关配置.

<supports-screens        android:anyDensity="true"        android:largeScreens="true"        android:normalScreens="true"        android:resizeable="true"        android:smallScreens="true" />

添加权限,这个就不多说了(博主是配置的最基础的权限.如需其他权限,按需添加即可)

<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

注意事项
4-1:application一定要是io.dcloud.application.DCloudApplication.你可以直接在AndroidManifest.xml填写上,也可以自己写你的application去继承DCloudApplication.两种方式都可以.
4-2:启动策略一定要用这个io.dcloud.PandoraEntry.不然你运行出来的项目就会在启动页停留并且一直转圈圈,啥反应也没有.

<activity            android:name="io.dcloud.PandoraEntry"            android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale"            android:hardwareAccelerated="true"            android:screenOrientation="user"            android:theme="@style/TranslucentTheme"            android:windowSoftInputMode="adjustResize">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>

这里如果项目启动项比如是mainActivity,那么就让mainActivity去继承PandoraEntry这个类.把握一点就可以,只要加载uniapp或5+app就一定要用PandoraEntry的启动策略.
4-3:配置已webApp为基座的相关配置

<activity            android:name="io.dcloud.PandoraEntryActivity"            android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard"            android:hardwareAccelerated="true"            android:launchMode="singleTask"            android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"            android:screenOrientation="user"            android:theme="@style/DCloudTheme"            android:windowSoftInputMode="adjustResize">            <intent-filter>                <category android:name="android.intent.category.DEFAULT" />                <category android:name="android.intent.category.BROWSABLE" />                <action android:name="android.intent.action.VIEW" />                <data android:scheme="h56131bcf" />            </intent-filter>        </activity>

这里的PandoraEntryActivity点击进去他是继承的WebAppActivity,同理,你也可以自己新建类去继承它WebAppActivity并重新.

个人的理解PandoraEntryActivity就是用来加载一个插件app的基座,类似插件化.把插件apk打包编译出来,使用PandoraEntryActivity去加载这个插件apk. 在次强调,这个个人理解,非官方.

这个为什么是这个h56131bcf.博主还没理解,查阅资料也不知道.最开始理解的是uniapp官网上面的APPid.发现填空值或些其他值也可以使用.有人知道的话,可以评论留言一下.

5:打开HBuilderX 新建项目选择5+App,然后发行.如下图
Android原生运行uniapp使用5+app创建项目时的SDK集成步骤(一)_第4张图片
Android原生运行uniapp使用5+app创建项目时的SDK集成步骤(一)_第5张图片6:这里的H566800AA文件夹名称就是对应uniapp官网控制台里面的appid.将这个文件夹复制到as项目目录assets/apps/目录下面,如下图:
Android原生运行uniapp使用5+app创建项目时的SDK集成步骤(一)_第6张图片Android原生运行uniapp使用5+app创建项目时的SDK集成步骤(一)_第7张图片
7:然后将官网下载的SDK里面HBuilder-Integrate-AS/app/src/main/asstes/data/dcloud_properties.xml文件和HBuilder-Integrate-AS/app/src/main/asstes/data/dcloud_control.xml文件,复制到as对应的data目录下面.
注意:
dcloud_properties.xml这个文件是hbuilderx打包的时候配置文件,可以忽略,按需配置.缺少这个文件,在原生APP里面就会提示"打包时未添加xxx模块…".具体参考:http://ask.dcloud.net.cn/article/283
dcloud_control.xml这个文件就是必须要配置的,不可缺少.其中apps标签里面对应你的官网发行的appid. appver可以随便写,不碍事.hbuilder version网上查阅资料说不可修改.但是实际修改成其他数值也可以运行.

<hbuilder version="1.9.9.71156">    <apps>        <app appid="H566800AA" appver="1.0.0"/>    </apps></hbuilder>

Android原生运行uniapp使用5+app创建项目时的SDK集成步骤(一)_第8张图片

最后附上博主直接运行官方提供的SDKdemo遇到的问题解决办法:
1报错META-INF/MANIFEST.MF相关的资源包文件冲突.可以参考这篇
博主是直接删掉了demo里面libs里面一些无用的相关jar和aar包.
2:报错 Gradle DSL method not found: 'apply()相关.可以参考这篇
3:博主是Androidx环境.所以相应的一些包都要迁移到Androidx上面,具体的迁移方法百度上有很多教程.百度一下,你就知道

注意 注意 注意
此篇文章,是基于在HBuilderX里面新建5+app离线打包发行出来,在原生Android环境为壳子,使用webview方式来加载本地的资源文件.
你也可以加载网络H5地址.具体方法.官方demo里面有说明,只要你这篇文章理解了并成功运行,相信你也可以适当修改做到加载网络地址的.

下一篇,将介绍基于在HBuilderX里面新建uni-app离线打包发行出来,在原生Android环境为壳子,使用widget方式来加载本地的资源文件,不要和本篇文章概念搞混淆了.

更多相关文章

  1. Android开源项目第二篇——工具库篇
  2. Android项目Android Studio目录结构
  3. 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写
  4. Android Ant更新项目
  5. Android 进阶——Android Studio 项目结构详细述及Gradle脚本语
  6. Android视音频录制实现步骤(Android学习随笔八)
  7. Android gradle build 修改文件名称及目录
  8. Android小项目——简单计算器的实现
  9. 让 Android 可以识别BMP图片文件,且目前Android所支持的所有图片

随机推荐

  1. android复制文字功能
  2. WMS总体框架
  3. Android(安卓)点击输入框弹出日历 《H》
  4. qt for android opencv 笔记
  5. 图片保存到sd卡
  6. Android(安卓)TextView实现超链接
  7. android 分类联动效果 模仿每日优鲜
  8. android————EditText
  9. android Tab和ViewPager结合的例子
  10. Android(安卓)view点击放大缩小