DCloud_App_Array
DCloud_App_Array
  • 发布:2016-01-12 19:33
  • 更新:5 天前
  • 阅读:247445

Android平台本地(离线)打包指南 - Android Studio

分类:5+ SDK

预备环境

  • AndroidStudio开发环境,要求安装Android4.0或以上(API 14)SDK。
  • 下载HBuilder离线打包Android版SDK(5+ SDK下载)。

离线打包SDK目录说明

  • HBuilder-Hello:离线打包演示应用;
  • HBuilder-Integrate: 5+ SDK 集成和插件开发示例
  • libs:SDK库文件目录;
  • Feature列表.xls:Android平台各扩展Feature API对应的permission;
  • Readme.txt:版本说明文件。

配置编译工程

  • 导入演示应用HBuilder-Hello工程
    启动AndroidStudio 点击导入工程“import project”


    选中工程所在目录点击“OK”

    选择生成的AndroidStudio工程的保存路径,然后点击“next”,

    在演示工程中已经配置好HelloH5应用相关资源,完成导入后,可Shift F10直接编译运行:

    从SDK目录中拷贝要使用的feature库到工程app/libs目录
    参考“Feature列表.xls”文档确定应用中使用到的扩展API,拷贝libs目录中对应的“jar”文件拷贝到工程的app->libs目录下,如果有引用“so”文件需要拷贝到工程的app->src->main->jniLibs下对应目录中。如使用分享功能(新浪微博分享、腾讯微博分享,微信分享),则需要拷贝以下文件:

    拷贝完成后在工程中刷新可在工程的libs目录下显示:

  • 配置应用的权限
    参考“Feature列表.xls”文档确定应用中使用到的扩展API,在AndroidManifest.xml文件中删除不用到API的权限。如不使用音频(plus.audio.*)相关5+ API,则可删除Audio相关的权限:

  • 配置其它第三方库的数据
    由于第三方库需要使用一些特定的数据,所以在使用时需要将相关参数配置到AndroidManifest.xml文件中。如使用分享功能,则需要配置各分享平台的申请应用的相关参数:


    如果不使用此类API,则可将此数据删除。
    插件的配置方法请参考以下文档
    Android离线打包插件配置
    推送插件配置
    分享插件配置
    登陆鉴权插件配置
    地图插件配置
    支付插件配置
    定位插件配置

  • 配置应用的包名及版本号
    打开AndroidManifest.xml文件,在代码视图中修改根节点的package属性值,如下:


    其中package为应用的包名,采用反向域名格式,为应用的标识;versionCode为应用的版本号(整数值),用于各应用市场的升级判断,建议与manifest.json中version -> code值一致;versionName为应用的版本名称(字符串),在系统应用管理程序中显示的版本号,建议与manifest.json中version -> name值一致。

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

  • 配置离线打包广告支持及渠道打包配置
    新版本SDK简化了离线打包支持DCloud广告联盟功能。
    AndroidManifest.xml文件中添加如下节点到节点中,并配置替换其中5+应用appid、广告联盟会员adid的值和渠道标识,因为涉及到开屏广告业务,项目工程必须以io.dcloud.PandoraEntry作为5+应用的入口Activity。该activity已包含在lib.5plus.base-release中,开发者无需实现

    <meta-data android:name="DCLOUD_AD_ID" android:value="广告标识"/>  
    <meta-data android:name="DCLOUD_AD_SPLASH" android:value="true"/><!--如果不开启开屏广告则不设置此字段或者值设置为false-->  
    <meta-data android:name="DCLOUD_STREAMAPP_CHANNEL" android:value="包名|应用标识|广告标识|渠道,如io.dcloud.appid|appid|adid|google" /><!--为了保证广告统计的有效性,请正确设置此值-->
    • 包名:对应Android项目中build.gradle中的applicationId,如io.dcloud.HBuilder
    • 应用标识:对应对应5+或uni-app项目manifest.json中appid
    • 广告标识:DCloud的广告标识,开通广告后可在dev.dcloud.net.cn获取,如果没有开通广告,设置值为空即可
    • 渠道:渠道包制作指南
      注意:提交谷歌应用市场(Google Play)时一定要将渠道标识设置为google!!!
      注意:以上操作只是配置5+应用具备广告能力,实际开通需要在manifest.json配置开关,具体参考DCloud广告联盟
      如果不需要支持广告,仍然可以使用WidgetWebView方式集成。
  • 配置应用图标和启动界面
    将应用的图标(文件名为icon.png)启动图片按照对应的尺寸拷贝到工程的app->src->main->res -> drawable-XXX目录下:

  • 更新应用资源
    打开app->src->main->assets -> apps 目录,将下面“HelloH5”目录名称修改为应用manifest.json中的id名称(这步非常重要,否则会导致应用无法正常启动),并将所有应用资源拷贝到其下的www目录中:

  • 配置应用信息
    打开app->src->main->assets -> data下的control.xml文件,修改appid和appver的值:


    其中appid值为HBuilder应用的appid,必须与应用manifest.json中的id值完全一致;appver为应用的版本号,用于应用资源的升级,必须保持与manifest.json中的version -> name值完全一致;version值为应用基座版本号(plus.runtime.innerVersion返回的值),不要随意修改。

  • 配置完成编译运行
    应用配置完毕,按Shift F10编译运行应用
    在弹出的设备列表对话框中选择要运行的设备:


    点击OK后启动应用:

常见问题

Q: 打包后页面中无法调用5+API
A: 修改app->build.gradle文件defaultConfig节点下miniSdkVersion和targetSdkVersion属性指定版本号为8

注意(新版已不需要添加):打包时如果修改APK的包名,则同时需要修改Rinfomation.java文件import的包名,
同时需要修改AndroidManifest.xml文件中引用包名的插件有
推送插件
微信(登陆,分享 ,支付),微信同时需要修改引入的WXEntryActivity.java和WXPayEntryActivity.java文件所在的包名

Q :使用Android Studio编译时如果提示如下错误

A:
下载附件并解压

点击下载
点击 Android Studio 菜单 File->Settings->Build,Execution,Development->Build Tools->Gradle选择Use local gradle distribution,选择附件解压后的目录点击OK即可

15 关注 分享
Charles Trust skysowe 455169601@qq.com 1452176237@qq.com zhaoyong111@sina.com yhusky@qq.com 292201026@qq.com 1090635942@qq.com Geeker 772567199@qq.com jzq84229 877058416@qq.com 1106812539@qq.com 1600157980@qq.com

要回复文章请先登录注册

1724254060@qq.com

1724254060@qq.com

想问一下 离线打包跟云打包有什么区别
5 天前
飞刀英雄

飞刀英雄

没有android studio基础的,这个文档操作起来问题会很多,很难打包成功。我把android离线打包录制了一个视频,大家可以看着视频操作,轻松实现离线打包。观看地址:http://www.xiaotiaogou.com/mui003.php
2020-03-28 13:38
704599298@qq.com

704599298@qq.com

回复 pc_彭:
离线打包uniPUsh怎么设置。大哥
2020-03-25 15:51
Fei0o0

Fei0o0

定位提示失败
2020-03-24 19:29
pc_彭

pc_彭

加入了离线打包大军,楼下的 可以用哦,经过2天的奋斗,都成功了,,ios坑了 我一路,其实其实很简单
2020-03-13 12:49
有问

有问

问下使用原生打包后,之前在线打包的配置的一些东西还能用吗?比如微信支付等。还需要再重新获取或填写MD5什么值么。
2020-03-11 13:40
2675781831@qq.com

2675781831@qq.com

太复杂了啊,能不能出个精简版本的demo,我的应用就一个webview,点“运行” > “原生APP-本地打包” > “生成本地打包APP资源”,在unpackage文件夹下生成了resources文件夹,只想问从“resources”文件夹开始,怎么弄?
2020-03-10 09:09
飞刀英雄

飞刀英雄

没有android studio基础的,这个文档操作起来问题会很多,很难打包成功。我把android离线打包录制了一个视频,大家可以看着视频操作,轻松实现离线打包。观看地址:http://www.xiaotiaogou.com/mui003.php
2020-03-06 18:09
453161659@qq.com

453161659@qq.com

为什么我生成的本地资源包没有页面的文件,www文件夹下只有img文件和其他配置文件,没有页面的文件
2020-02-29 21:18
啊斌

啊斌

回复 飞刀英雄:
有ios的视频吗
2020-02-27 15:42