一、下载安装软件
- Android Studio 下载地址:Android Studio官网 OR Android Studio中文社区
- HBuilderX
- App离线SDK下载:最新android平台SDK下载
二、Android Studio新建项目
三、HBuilder新建项目
四、配置工程
1.基础库配置
1.1 拷贝资源库
将lib.5plus.base-release.aar、android-gif-drawable-release@1.2.23.aar、uniapp-v8-release.aar和oaid_sdk_1.0.25.aar拷贝到libs目录下
1.2 在build.gradle中添加资源引用
注意:HBuilderX3.2.5版本之后适配了AndroidX。
AndroidX版本需添加如下资源
1 2 3 4 5 6 7 8 9 |
implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.aar'], dir: 'libs') implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.0.0' implementation 'com.facebook.fresco:fresco:2.5.0' implementation "com.facebook.fresco:animated-gif:2.5.0" implementation 'com.github.bumptech.glide:glide:4.9.0' implementation 'com.alibaba:fastjson:1.1.46.android' |
uni-app配置时需要在build.gradle中添加aaptOptions配置
1 2 3 4 |
aaptOptions { additionalParameters '--auto-add-overlay' ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~" } |
2.应用配置
2.1 配置Appkey
3.1.10版本起需要申请 Appkey,申请请参考
打开Androidmanifest.xml, 导航到Application节点,创建meta-data节点,name为dcloud_appkey,value为申请的AppKey如下:
1 |
<meta-data android:name="dcloud_appkey" android:value="bac8e609556e6e213c84ad9e26804916" /> |
2.2 配置应用版本号
2.3 配置应用名称
- 打开app-> src -> main -> res -> values -> strings.xml文件,修改“app_name”字段值,该值为安装到手机上桌面显示的应用名称,建议与manifest.json中name(基础配置中的应用名称)对应。
2.4 配置应用启动页及provider节点
将下述内容添加到Androidmanifest.xml的application节点中
注意:新建的项目默认会有一个MainActivity的节点,必须删掉!
注意:为适配折叠屏,需要在PandoraEntryActivity的android:configChanges属性中追加“smallestScreenSize|screenLayout|screenSize”,参考如下配置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<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" android:exported="true"> <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|smallestScreenSize|screenLayout|screenSize" android:hardwareAccelerated="true" android:permission="com.miui.securitycenter.permission.AppPermissionsEditor" android:screenOrientation="user" android:theme="@style/DCloudTheme" android:windowSoftInputMode="adjustResize" android:exported="true"> <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> <!--provider节点必须添加--> <provider android:name="io.dcloud.common.util.DCloud_FileProvider" android:authorities="${apk.applicationId}.dc.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/dcloud_file_provider" /> </provider> |
注意:${apk.applicationId} 必须替换成当前应用的包名:【即:com.example.uniappdemo
】
如果集成离线SDK时需要重写application,必须继承自DCloudApplication,否则会导致SDK中业务逻辑无法正常运行。
将对应的application配置到Androidmanifest.xml中(如下),并添加tools:replace=”android:name”以防出现冲突。
1 2 3 4 5 6 |
<application android:name="io.dcloud.test.TestApplication" android:icon="@drawable/icon" android:label="@string/app_name" tools:replace="android:name"> </application> |
2.5 配置应用图标和启动界面
- 图标名称icon.png为应用的图标。push.png为推送消息的图标。splash.png为应用启动页的图标。
- 将icon.png、push.png、splash.png放置到drawable,drawable-ldpi,drawable-mdpi,drawable-hdpi,drawable-xhdpi,drawable-xxhdpi文件夹下,不同文件夹下对应不同图片尺寸,可参考文档
- 注意:splash.png在不同设备上显示效果不一样,为防止出现拉伸的状况,建议使用Android studio生成.9.png类型图片,可参考文档
3 资源配置
3.1 创建assets资源文件夹
3.2 创建data文件夹并拷贝资源
3.3 从HBuilder中导出app资源
3.4 创建apps文件夹并拷贝资源
3.5 修改dcloud_control.xml文件
- 修改dcloud_control.xml中的appid为拷贝过来的uni-app的id,确保dcloud_control.xml中的appid与manifest.json中的id与文件夹名一致,如下图所示:
- 生成自定义基座,需要在根节点下添加debug=”true”和syncDebug=”true”
- 自定义基座支持热更新需要将debug-server-release.aar打入apk中,生成正式包时可以删除。详细步骤可参考链接
4 其他配置
4.1 AndroidX 配置
- 需要在项目根目录下的gradle.properties文件中添加如下内容
- 非AndroidX不加即可
1 2 |
android.useAndroidX=true android.enableJetifier=true |
4.2 报错解决
4.3 配置签名
- 将生成的test.keystore文件复制到app目录下
- 修改build.gradle配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
signingConfigs { config { keyAlias 'testalias' keyPassword '123456' storeFile file('test.keystore') storePassword '123456' v1SigningEnabled true v2SigningEnabled true } } // buildTypes { // release { // minifyEnabled false // proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' // } // } buildTypes { debug { signingConfig signingConfigs.config minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } release { signingConfig signingConfigs.config minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } |
五、运行
六、打包APK
参考: