1.安装Androidstudio
2.安装相关版本sdk
3.下载dcloud官方提供的sdk并解压.
4.androidstudio中导入HBuilder-Integrate-AS作为参考.
5.在andrioidstudio新建一个空项目,项目路径要建好,在后面配置中会使用,例如:com.zhuye.h5bank
6.在libs中导入所需jar包,可以从导入的demo中复制
android-gif-drawable-release@1.2.23.aar fastjson-1.2.78.jar lib.5plus.base-release.aar oaid_sdk_1.0.25.aar
7.在项目中main目录下创建apps文件夹:
H5Bank\app\src\main\assets\apps\项目appid(可以从dcloud官网控制台获取或mui项目的manifest.json中获取)\www\ (把mui项目粘进来除了unpackage目录)
8.在项目中main目录下创建data文件夹:
H5Bank\app\src\main\assets\data 并放入文件(可以从导入的demo中复制)
dcloud_control.xml dcloud_error.html dcloud_properties.xml
dcloud_control.xml中增加如下代码,appid根据实际项目获取
<apps> <app appid="H50F96945" appver=""/> </apps>
9.AndroidManifest.xml 配置权限
10.AndroidManifest.xml配置dcloud_appkey,该key需要去官网控制台申请.
key生成参考: Android平台签名证书(.keystore)生成指南 - DCloud问答
key申请参考:
生成命令: keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore 查看命令: keytool -list -v -keystore test.keystore key存储位置: C:\Program Files\Java\jre1.8.0_65\bin
key名称尽量与项目名称保持一致.
生成的key文件放到app目录下
在AndroidManifest.xml中application标签内增加key配置到码如下:
<provider
android:name="io.dcloud.common.util.DCloud_FileProvider"
android:authorities="{applicationId}.FileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/dcloud_file_provider" />
</provider>
<meta-data
android:name="dcloud_appkey"
android:value="26c5e563e23c16c863db60c001658b9b" />name:dcloud_appkey保持不变value从控制台生成后粘贴
11.签名信息配置
在build.gradle中配置签名信息如下:
signingConfigs {
config {
keyAlias 'testalias'
keyPassword '666666'
storeFile file('hello_login.keystore')
storePassword '666666'
v1SigningEnabled true
v2SigningEnabled true
}
}
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'
}
}12.导入的jar包如果读取不到在build.gradle中导入如下代码
dependencies {
implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'com.android.support:support-v4:30.4.1'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
}13.build.gradle代码整体参考:
plugins {
id 'com.android.application'
}
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.zhuye.h5bank"
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
signingConfigs {
config {
keyAlias 'testalias'
keyPassword '666666'
storeFile file('hello_login.keystore')
storePassword '666666'
v1SigningEnabled true
v2SigningEnabled true
}
}
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'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'com.android.support:support-v4:30.4.1'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
}14.AndroidManifest.xml整体代码参考:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zhuye.h5bank"
xmlns:tools="http://schemas.android.com/tools"
>
<application
android:name="io.dcloud.application.DCloudApplication"
android:allowClearUserData="true"
android:label="@string/app_name"
android:largeHeap="true" >
<activity
android:name="io.dcloud.PandoraEntry"
android:configChanges="orientation|keyboardHidden|keyboard|navigation"
android:hardwareAccelerated="true"
android:label="@string/app_name"
android:launchMode="singleTask"
android:screenOrientation="user"
android:theme="@style/TranslucentTheme"
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:configChanges="orientation|keyboardHidden|screenSize|keyboard|navigation|mcc|mnc|fontScale"
android:hardwareAccelerated="true"
android:label="5+Debug"
android:launchMode="singleTask"
android:screenOrientation="user"
android:theme="@style/DCloudTheme"
android:windowSoftInputMode="adjustResize" >
</activity>
<service
android:name="io.dcloud.common.adapter.io.MiniServerService"
android:exported="true" />
<provider
android:name="io.dcloud.common.util.DCloud_FileProvider"
android:authorities="{applicationId}.FileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/dcloud_file_provider" />
</provider>
<meta-data
android:name="dcloud_appkey"
android:value="26c5e563e23c16c863db60c001658b9b" />
</application>
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-feature android:name="android.hardware.camera"/>",
<uses-feature android:name="android.hardware.camera.autofocus"/>",
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>",
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>",
<uses-permission android:name="android.permission.BLUETOOTH"/>",
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>",
<uses-permission android:name="android.permission.CAMERA"/>",
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>",
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>",
<uses-permission android:name="android.permission.INTERNET"/>",
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>",
<uses-permission android:name="android.permission.VIBRATE"/>",
<uses-permission android:name="android.permission.BLUETOOTH"/>",
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>"
</manifest>