简介

https://nativesupport.dcloud.net.cn/AppDocs/README

  1. App 离线开发工具包,即 App 离线 SDK,是把 App 运行环境(runtime)封装为原生开发调用接口,开发者可以在自己的 Android 及 iOS 原生开发环境配置工程使用,包括 Android 离线开发 SDK 及 iOS 离线开发 SDK
  2. App 离线 SDK 主要用于 App 本地离线打包扩展原生能力
    1. App 本地离线打包: 对应 HBuilderX 的云端打包功能,uni-app5+ App 等项目发行为原生 App 时,无需将 App 资源及打包要使用的签名证书等提交到云端打包服务器,在开发者本地配置的原生开发环境中生成安装包 apk/ipa
    2. 扩展原生能力: 当 HBuilderX 中提供的能力无法满足 App 功能需求,需要通过使用 Andorid/iOS 原生开发实现时,可使用 App 离线 SDK 开发原生插件来扩展原生能力。
      • uni-app 项目扩展原生能力需开发 uni 原生插件,支持云端打包,有完善的开发者生态插件市场
      • 5+ App 项目扩展原生能力需开发 5+原生插件,仅支持本地离线打包
    3. 5+原生插件将不再继续维护,建议开发者升级应用为 uni-app 项目并使用 uni原生插件。如需继续使用 5 + 原生插件,请参考以下文档:

Android 平台 5 + 原生插件开发

http://ask.dcloud.net.cn/article/66

打包

https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android

  1. Android Studio 打开离线打包工程HBuilder-Hello

  2. 打开app/build.gradle,修改如下 3 项信息

    1
    2
    3
    4
    defaultConfig {
    applicationId "io.dcloud.HelloH5"
    versionCode 1
    versionName "1.0"
    • applicationId 为 Android 包名。如果 已经使用 HBuilderX 云打包,则使用云打包的 Android 包名,查看参考下图:

      20200514174739_JAk2M7
    • versionCode 为应用的版本号(整数值),用于各应用市场的升级判断,建议与 manifest.json 中 version -> code 值一致

    • versionName 为应用的版本名称(字符串),在系统应用管理程序中显示的版本号,建议与 manifest.json 中 version -> name 值一致

  3. AndroidManifest.xml

    1
    2
    3
    4
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="io.dcloud.HelloH5">
    //package 项目中自定义的包名,在下面引入 activity 时作为其基础路径
    • 修改百度地图 ak

      1
      2
      3
      <meta-data
      android:name="com.baidu.lbsapi.API_KEY"
      android:value="u1vrG5cDGQLioX9fezNAdGkR"/>
    • Speech(语音识别)-讯飞语音,不要修改「它是和libs目录下的jar包是绑定的」

    • provider——${applicationId} 为应用 applicationId

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      <provider
      android:name="io.dcloud.gdt.GdtFileProvider"
      android:authorities="${applicationId}.fileprovider"
      android:exported="false"
      android:grantUriPermissions="true">
      <meta-data
      android:name="android.support.FILE_PROVIDER_PATHS"
      android:resource="@xml/gdt_file_path"
      tools:replace="android:resource"/>
      </provider>
  4. 配置应用名称

    打开 app->res -> main -> values -> strings.xml 文件,修改 “app_name” 字段值,该值为安装到手机上桌面显示的应用名称,建议与 manifest.json 中 name(基础配置中的应用名称)对应

    1
    <string name="app_name">智慧执法</string>
  5. 配置应用图标和启动界面

    drawable 目录

    • icon.png 为应用的图标

    • push.png 为推送消息的图标

    • splash.png 为应用启动页的图标

  6. 获取并放置本地打包资源

    HBuilderX 导出离线打包资源「发行——原生App-本地打包——生成本地打包App资源」,将导出的资源复制到 assets->apps 下,如下图所示:

    image-20200515112315057 资源
  7. 修改 dcloud_control.xml 文件

    确保 dcloud_control.xml 中的 appid 与 manifest.json 中的 id 与文件夹名一致

  8. Android Studio 打包

    • 签名证书不要随意更换,否则会导致用户升级失败

    • 若之前云打包使用的是 DCloud 默认证书,为保证正常升级,依然继续下载 DCloud 证书使用。证书地址

    • 若之前使用自有证书,则同样使用该自有证书

    • 生成 apk,Build Variants 建议选 release(正式发行尽量杜绝选择 debug),Signature Versions 建议都选,点击 Finish

升级

  1. 普通版本升级

    HBuilderX 中修改项目 manifest.json 应用版本名称和应用版本号,导出升级包 wgt ,放到服务器上 app 目录并修改version.json 版本信息和升级包文件名

    image-20200515111903152 image-20200515111050128 image-20200515111641248
  2. 版本升级并提供离线 apk包「参考打包步骤 1、6、8」

    1. 修改 Android 离线打包项目 app/build.gradle 中版本名和版本号
    2. 从 HBuilderX 导出离线打包资源,复制到 Android 项目 assets->apps
    3. Android Studio 打包,apk 文件放到 服务器上 app 目录,修改 apkdownload.jspapk 名称

android—— 离线打包制作自定义基座

https://ask.dcloud.net.cn/article/35482