# 9. 静态检测

# 9.1 schema缺失

在游戏主acitivty如下所示加入 android:scheme="ks替换成你的游戏缩写"
示例:游戏名称:爱游斗地主,游戏缩写:ayddz,scheme配置为: android:scheme="ksayddz" android:host="home" , 如果有特殊需求,可自行配置deeplink参数,只需保证scheme以为ks开头。

 <activity
    android:name=".MainActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <--把一下代码加入到你们主界面,如果没有特殊需要按下面处理-->
    <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />
    <!--协议部分-->
    <data
        android:host="home"
        android:scheme="ks+游戏缩写" />
    </intent-filter>
</activity>

使用adb验证

adb shell am start -d 'ks游戏缩写://home' -a android.intent.action.VIEW

# 9.2 so 缺失

这种情况是检查sdk 包含的 so 是否每种架构中都有。

TIP

目前1.3以下的版本中,只包含v7a架构, 游戏需要处理加上

ndk {
   abiFilters 'armeabi-v7a'
}

1.3以上的版本中 包含v7a和v8a两种架构的so.

ndk {
   abiFilters 'arm64-v7a' ,'armeabi-v7a'
}

# 9.3 lifecycle缺失


这种情况,检查一下生成apk的manifest里是否包含

<provider
   android:name="android.arch.lifecycle.ProcessLifecycleOwnerInitializer"
   android:exported="false"
   android:multiprocess="true"
   android:authorities="com.kwai.allin.demo.lifecycle-trojan" />

这个provider, 如果不包含, 要么是lifecycle 三方依赖接入不对,如果是jar 的方式接入这个三方库,检查是否没有拷贝对应库的manifest。

# 9.4 publicsuffix文件缺失

okhttp3/internal/publicsuffix/publicsuffix.gz 文件缺失
这种情况,确认apk产物中是否有如图中的文件,如果没有则可能是打包中丢失,需要手动加入到apk中。
https://github.com/square/okhttp/issues/3582 (opens new window)

# 9.5 smail 文件缺失

  1. 检查是否正确导入三方库以及sdk
  2. 检查三方库是否混淆
  3. 如果上传的包被加固,需要游戏处理不加固sdk以及三方库的部分
  4. 修改SDK以及三方库加固路径:
com/kwai 
com/getkeepsafe/relinker
okhttp3
com/google/
io/reactivex
org/greenrobot/greendao/database
android/arch/persistence/room   
android/arch/lifecycle     
retrofit2/converter/scalars/ScalarRequestBodyConverter
retrofit2/converter/gson/GsonRequestBodyConverter  
retrofit2/adapter/rxjava2/RxJava2CallAdapter