开发环境

  1. 安装Android Studio 下载地址:Android Studio官网 OR Android Studio中文社区
  2. HBuilderX(以2.6.16版本为例子)
  3. App离线SDK下载:最新android平台SDK下载

注意:下载的App离线SDK版本必须与HBuilderX版本一致(2.6.16)

创建项目

1、AndroidStudio下载安装完成后打开,如下图所示选中Empty Activity,点击Next创建
image.png

2、编辑名称,包名-格式一般为com..,保存位置和选择语言Java

我们注意到下方Minimum SDK有下拉列表选项,这里选择支持的最低版本,官方文档的建议是大于等于19,我这里选的是22,大家自行斟酌。

点击Finish完成创建。
image.png

3、创建模拟器的选项,在最初没有模拟器时如红色方框内“No Devices”状态,点击红色箭头选项。23503189-c2aa04bb3dbbfb3e.webp
4、点击Create Virtual Device创建虚拟设备23503189-6f21b3c82917fdd1.webp

5、在Phone栏里随意选择各种配置的模拟设备,如果你的电脑配置并不是多么好,建议挑选简单的比较容易加载,在这里我挑选了一个320×480的。点击Next
23503189-fe9314ce7768ecc1.webp
6、系统镜像,自己随便选择。点击Next
23503189-17d53c9a68556222.webp

7、这个默认就行,直接点击Finish23503189-60be55ea2e2c4824.webp
8、我们可以看到虚拟设备已经创建完成,点击右上角×直接退出此界面。
23503189-3a4959b962b1a702.webp
9、顺着最左边的箭头,可以看到刚刚创建的虚拟设备标识,点击右边箭头指向的选项,运行虚拟设备(也可直接在上图中直接点击Actions栏中最左边的三角符号运行)。
23503189-ee35da1ce688ee5d.webp
10、等待片刻,模拟器成功打开。
23503189-44516a357633fb92.webp

11、在 Hbuildx 发行(P)选项原生APP-本地打包(L)中选择生成本地打包App资源(R)
image.png

12、找到打包的App本地资源中的文件夹UNIABF3A7D,方便后用
image.png
image.png

13、在下载好的Android离线SDKassets目录,将assets目录拷贝出来放好,并新建apps文件夹爱与data目录同级,最后将本地打包资源UNIABF3A7D放在apps下面

image.pngimage.pngimage.png

配置工程

1、切换project项目模式
image.png

在下载好的Android离线SDK的libs目录下
image.png

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目录下
5-10.png
3、在app/build.gradle中添加资源引用

  1. implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
  2. implementation 'com.github.bumptech.glide:glide:4.9.0' // 基座依赖
  3. implementation 'com.android.support:support-v4:28.0.0'
  4. implementation "com.android.support:appcompat-v7:28.0.0"
  5. implementation 'com.android.support:recyclerview-v7:28.0.0'
  6. implementation 'com.alibaba:fastjson:1.1.46.android'
  7. implementation 'com.facebook.fresco:fresco:1.13.0'
  8. implementation "com.facebook.fresco:animated-gif:1.13.0"

image.png

4、点击红色框中的任一选项进行同步处理。
image.png

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"
    }

image.png
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文件夹
image.png

8、配置版本号
image.png

9、配置应用名称
image.png

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