该功能仅适用于低于1.3.0.0的版本, 1.3.0.0 以及以上版本默认支持多进程上报数据。
如果您的应用存在多个进程,而且您有在多个进程上报数据的需求,请在 SolarEngineConfig 中配置 supportMultiProcess 为 true 之后,按照本文档配置多进程。
在配置开启多进程之后,每一个进程都需要调用 SDK 的初始化。
第一步:
请在应用程序的 AndroidManifest.xml 文件中配置开启多进程的 provider:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:label="@string/app_name">
<provider android:authorities="${applicationId}.solar.engine.provider"
android:name="com.reyun.solar.engine.db.SolarEngineContentProvider"
android:multiprocess="true"
android:permission="${applicationId}.permission.SolarEngineContentProvider"
android:exported="false"/>
</application>
</manifest>
其中,${applicationId} 占位符会在编译过程中自动替换为您的应用包名,此处不需要做任何的修改。
第二步:
请在应用程序的 AndroidManifest.xml 文件中配置多进程需要的权限:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<permission android:name="${applicationId}.permission.SolarEngineContentProvider"
android:protectionLevel="signature"/>
</manifest>
其中,${applicationId} 占位符会在编译过程中自动替换为您的应用包名,此处不需要做任何的修改。
该权限属于自定义权限,不会存在任何隐私风险。
第三步:验证配置是否正确。
在完成上述配置之后,启动应用程序。 logcat 中过滤 SolarEngineSDK.Global,如果看到了如下 log,则说明配置成功:
SolarEngineSDK init success by appKey: {your app key} sessionId: {current session id} package: {your package name} isMainProcess: {main process} isSupportMultiProcess: true isDebug:{debug state} isContentProviderAvailable: true
其中,isSupportMultiProcess 为 true 说明 SolarEngineConfig 配置了 supportMultiProcess,否则请检查 supportMultiProcess。isContentProviderAvailable 为 true 说明 AndroidManifest.xml 中配置正确。
第四步:配置完成,请在其他的进程中上报事件。