开发环境
- 安装Android Studio 下载地址:Android Studio官网 OR Android Studio中文社区
- HBuilderX(以2.6.16版本为例子)
- App离线SDK下载:最新android平台SDK下载
注意:下载的App离线SDK版本必须与HBuilderX版本一致(2.6.16)
创建项目
1、AndroidStudio下载安装完成后打开,如下图所示选中Empty Activity,点击Next创建
2、编辑名称,包名-格式一般为com..,保存位置和选择语言Java
我们注意到下方Minimum SDK有下拉列表选项,这里选择支持的最低版本,官方文档的建议是大于等于19,我这里选的是22,大家自行斟酌。
点击Finish完成创建。
3、创建模拟器的选项,在最初没有模拟器时如红色方框内“No Devices”状态,点击红色箭头选项。
4、点击Create Virtual Device创建虚拟设备
5、在Phone栏里随意选择各种配置的模拟设备,如果你的电脑配置并不是多么好,建议挑选简单的比较容易加载,在这里我挑选了一个320×480的。点击Next。
6、系统镜像,自己随便选择。点击Next。
7、这个默认就行,直接点击Finish。
8、我们可以看到虚拟设备已经创建完成,点击右上角×直接退出此界面。
9、顺着最左边的箭头,可以看到刚刚创建的虚拟设备标识,点击右边箭头指向的选项,运行虚拟设备(也可直接在上图中直接点击Actions栏中最左边的三角符号运行)。
10、等待片刻,模拟器成功打开。
11、在 Hbuildx 发行(P)选项→原生APP-本地打包(L)中选择生成本地打包App资源(R)。
12、找到打包的App本地资源中的文件夹UNIABF3A7D,方便后用
13、在下载好的Android离线SDK的assets目录,将assets目录拷贝出来放好,并新建apps文件夹爱与data目录同级,最后将本地打包资源UNIABF3A7D放在apps下面
配置工程
1、切换project项目模式
在下载好的Android离线SDK的libs目录下
2、将lib.5plus.base-release.aar、android-gif-drawable-release@1.2.17.aar、uniapp-release.aar和miit_mdid_1.0.10.aar拷贝到app/libs目录下
3、在app/build.gradle中添加资源引用
implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
implementation 'com.github.bumptech.glide:glide:4.9.0' // 基座依赖
implementation 'com.android.support:support-v4:28.0.0'
implementation "com.android.support:appcompat-v7:28.0.0"
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.alibaba:fastjson:1.1.46.android'
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation "com.facebook.fresco:animated-gif:1.13.0"
4、点击红色框中的任一选项进行同步处理。
5、uni-app配置时需要在build.gradle中添加aaptOptions配置
android {
aaptOptions {
additionalParameters '--auto-add-overlay'
ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
}
}
注意:更新SDK时需要同时更新aar/jar文件和build.gradle配置
6、配置应用版本号
defaultConfig {
applicationId "com.jianhui.gas"
minSdkVersion 22 //最低sdk版本
targetSdkVersion 26 //实际sdk版本
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
versionCode为应用的版本号(整数值),用于各应用市场的升级判断,建议与manifest.json中version -> code值一致
versionName为应用的版本名称(字符串),在系统应用管理程序中显示的版本号,建议与manifest.json中version -> name值一致。
applicationId为应用的包名,一般设置为反向域名,不建议修改。
建议将targetSdkVersion设置为25或以上。
App离线SDK minSdkVersion最低支持19,小于19在部分4.4以下机型上将无法正常使用。
compileSdkVersion为编译版本,buildToolsVersion为构建工具版本,applicationId为创建时的包名,minSdkVersion为兼容最小的版本号,targetSdkVersion为目标版本,有兴趣的可以百度一下三者之间的区别和联系。
注意,官方文档中标注“App离线SDK minSdkVersion最低支持19,小于19在部分4.4以下机型上将无法正常使用。”
7、将我们上面的assets文件夹拷贝到main文件夹
8、配置版本号
9、配置应用名称
10、配置应用启动页
将下述内容添加到Androidmanifest.xml的application节点中
注意:新建的项目默认会有一个MainActivity的节点,必须删掉!如果不删会有两个启动页,像上面那样出现Hello Word页面,而不是进入系统页。
<!-- <activity android:name=".MainActivity">-->
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.MAIN" />-->
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<!-- </intent-filter>-->
<!-- </activity>-->
<activity
android:name="io.dcloud.PandoraEntry"
android:configChanges="orientation|keyboardHidden|keyboard|navigation"
android:label="@string/app_name"
android:launchMode="singleTask"
android:hardwareAccelerated="true"
android:theme="@style/TranslucentTheme"
android:screenOrientation="user"
android:windowSoftInputMode="adjustResize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="io.dcloud.PandoraEntryActivity"
android:launchMode="singleTask"
android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard"
android:hardwareAccelerated="true"
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>
源于:App离线打包SDK