1
有沒有什麼辦法可以通過編程來檢查設備是否會使用armeabi,armeabi-v7a等庫?以編程方式檢查armeabi,armeabi-v7a等lib是否會被使用?
我猜Build.CPU_ABI
和Build.CPU_ABI2
的組合?
什麼是最可靠的檢查方法?
有沒有什麼辦法可以通過編程來檢查設備是否會使用armeabi,armeabi-v7a等庫?以編程方式檢查armeabi,armeabi-v7a等lib是否會被使用?
我猜Build.CPU_ABI
和Build.CPU_ABI2
的組合?
什麼是最可靠的檢查方法?
只是做這個Java調用本地代碼相當於:
String arch = System.getProperty("os.arch");
這樣的事情,example here:
jclass jc_system = (* env)->FindClass(env, "java/lang/System");
jmethodID jmid_get_property = (*env)->GetStaticMethodID(env, jc_system, "getProperty", "(java/lang/String)java/lang/String");
jstring js_arch_property = (jstring) (* env)->CallStaticObjectMethod(env, jc_system, jmid_get_property, "os.arch");
// Have fun!
更新1
盛衰我忘了轉換「 os.arch「(const char *)轉換爲jstring,here is how。
最安全可靠的方法是在安裝過程中看到哪些實際被複製出來,因爲這似乎能夠捕捉到決策系統中的錯誤(至少存在一個錯誤)。 –
如何方便地檢查哪個庫被實際複製? –
您可能能夠從精靈標題中提取。或者你可以在包裝之前用每個.so替換一些東西。一個相同長度的字符串可以用'sed'替代二進制文件。如果文件被逐字複製,則md5指紋可能會起作用,或者甚至長度足以消除歧義。 –