2014-02-24 15 views
1

有沒有什麼辦法可以通過編程來檢查設備是否會使用armeabi,armeabi-v7a等庫?以編程方式檢查armeabi,armeabi-v7a等lib是否會被使用?

我猜Build.CPU_ABIBuild.CPU_ABI2的組合?

什麼是最可靠的檢查方法?

+1

最安全可靠的方法是在安裝過程中看到哪些實際被複製出來,因爲這似乎能夠捕捉到決策系統中的錯誤(至少存在一個錯誤)。 –

+0

如何方便地檢查哪個庫被實際複製? –

+0

您可能能夠從精靈標題中提取。或者你可以在包裝之前用每個.so替換一些東西。一個相同長度的字符串可以用'sed'替代二進制文件。如果文件被逐字複製,則md5指紋可能會起作用,或者甚至長度足以消除歧義。 –

回答

0

只是做這個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

相關問題