Eclipse集成步骤
更新时间:2024-09-25
如果使用的是Android Studio集成,则可以跳过这部分内容,直接查看编写集成代码
下载sdk并解压
请向商务(spp_support@baidu.com)申请集成SDK,拿到SDK后进行解压,解压后找到release_techain_x-x-x-xxx_xxxx.jar.zip的文件,再次解压生成release-jar文件夹,需要从该文件夹中取出需要集成的文件。
再次解压后的SDK资料包结构如下:
release_techain_3-1-8-221_0531
├── arm64-v8a
│ ├── libtechain.so
│ └── libtechain_.a
├── armeabi-v7a
│ ├── libtechain.so
│ └── libtechain_.a
├── release-jar(Eclipse集成需要用到文件夹)
│ ├── AndroidManifest.xml(查看需要在AndroidManifest文件中增加配置的权限和组件)
│ ├── R.txt
│ ├── libs
│ │ └── armeabi
│ │ └── libtechain.so (把该so文件导入到指定目录libs/armeabi下)
│ ├── proguard.txt
│ ├── res(将res目录下的文件导入到应用的res目录下的相应资源文件夹中)
│ │ ├── drawable
│ │ │ ├── n_b_s0.xml
│ │ │ ├── n_b_s1.xml
│ │ │ ├── n_b_s2.xml
│ │ │ └── n_b_s3.xml
│ │ ├── drawable-hdpi-v4
│ │ │ └── b_b.png
│ │ ├── drawable-mdpi-v4
│ │ │ └── b_b.png
│ │ ├── drawable-xhdpi-v4
│ │ │ └── b_b.png
│ │ ├── drawable-xxhdpi-v4
│ │ │ └── b_b.png
│ │ ├── layout
│ │ │ └── a_a.xml(sdk需要的布局文件)
│ │ └── values
│ │ └── values.xml
│ └── techain_3-1-8-221_0531.jar(把该jar文件导入到指定目录libs下)
├── release_techain_3-1-8-221_0531.aar
├── release_techain_3-1-8-221_0531.jar.zip
└── x86
├── libtechain.so
└── libtechain_.a
导入SDK
1)从SDK中取出techain.jar,libtechain.so文件导入到指定目录libs下,并导入res目录下的相应资源文件,如下图所示:
如果App自身显式兼容多种ABI,如v7a,v8a,X86等,需要注意把我们提供的ZIP包中的相应so包手动置入.
2)AndroidManifest配置
开发者可以按照需求,添加如下权限配置:
<!-- 可选权限,慧推地理围栏功能需要的权限,如果要使用地理围栏功能,开发者需要主动配置并申请以下权限 ,如果不使用地理围栏,可以不配置以下权限,慧推SDK不会强制获取地理位置信息-->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 必选权限,消息推送需要的权限 -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 慧推SDK进行多进程判断需要的权限,慧推SDK不会采集后台应用信息 -->
<uses-permission android:name="android.permission.GET_TASKS" />
<!-- 华为和荣耀设备,收到通知消息后展示应用角标信息使用 -->
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
<uses-permission android:name="com.hihonor.android.launcher.permission.CHANGE_BADGE" />
在AndroidManifest.xml中需要正确配置SDK所需的组件。请在<application>
标签内增加以下组件配置:
<activity
android:name="com.baidu.techain.TechainActivity"
android:exported="true"
android:theme="@style/BD_TranslucentTheme"
android:excludeFromRecents="true"
android:launchMode="standard">
<intent-filter>
<action android:name="com.baidu.action.Techain.VIEW" />
<category android:name="com.baidu.category.techain" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data android:name="acsr"android:value="t"></meta-data>
</activity>
<receiver android:name="com.baidu.techain.TechainReceiver" android:exported="false">
<intent-filter>
<action android:name="com.baidu.action.Techain.VIEW" />
<category android:name="com.baidu.category.techain" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter android:priority="2147483647">
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<provider android:authorities=“应用包名+.techain.ac.provider" android:name="com.baidu.techain.TechainProvider" android:exported="true" />
<service
android:name="com.baidu.techain.TechainService"
android:exported="false">
<intent-filter>
<action android:name="com.baidu.action.Techain.VIEW" />
<category android:name="com.baidu.category.techain" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</service>
<receiverandroid:name="com.baidu.sofire.THReceiver"android:exported="true">
</receiver>
<serviceandroid:name="com.baidu.sofire.THService"android:exported="true">
</service>
<serviceandroid:name="com.baidu.techain.push.TechainPushConnService">
</service>
防止混淆配置
如果您的工程启用了Proguard混淆,为了避免SDK被错误混淆导致功能异常,需要在混淆配置文件中添加如下配置:
-dontwarn android.content.res.AssetManager
-dontwarn android.content.pm.PackageParser
-dontwarn android.content.pm.PackageParser$Package
-dontwarn android.R$styleable
-keepclasseswithmembers class com.baidu.techain.jni.Asc{*;}
-keep class com.baidu.techain.ac.Callback{*;}
-keep class com.baidu.techain.ac.FI{*;}
-keepclasseswithmembers class com.baidu.sofire.push.TechainPushConnService{*;}
-keepclasseswithmembers class com.baidu.techain.ac.F{*;}
-keep class com.baidu.techain.ac.TH {*;}
-keep class com.baidu.techain.ac.U {*;}
-keep class com.baidu.techain.core.ApkInfo{*;}
-keep class com.baidu.techain.rp.Report {
<methods>;
}