2012-06-24 100 views

回答

1

是的,這是可能的,與Android NDK使用C.你可能可能需要紮根爲了存儲二進制的地方要執行,注意,它不會跑掉SD卡,通常是/ data/local/tmp是一個想到的地方。當您將二進制文件推送到所述位置時,您必須在二進制文件本身上設置權限的執行位才能運行它。很有可能的是,所有權和集體所有者將不得不改變。

您的里程將因ROM而異。

1

目前這是可能的,雖然沒有正式支持/鼓勵。

最簡單的方法是設置一個項目目錄,並在其中創建一個包含Android.mk和C源文件的jni文件夾 - 使用hello-jni ndk樣本作爲指導。

然後將Android.mk中的BUILD_SHARED_LIBRARY更改爲BUILD_EXECTUABLE,並像平常一樣從父項目目錄運行ndk-build。

你也許也可以使用ndk獨立工具鏈生成功能,或者在過去有時會使用各種非官方包裝系統來使ndk gcc更易於(ab)使用。

沒有多餘的地方可以將可執行文件放在安全設備上。由於可執行位的掛載級別阻塞,sdcard已經結束。從大約Android 2.2開始,adb shell用戶可以寫入/ data/local目錄,而在早期版本中,有一個經常被濫用的/ sqlite_stmt_journals目錄用於測試。

另一種可能性是使用APK將可執行文件部署到其專用存儲中,並使它們在世界上可讀和可執行(可能需要jni才能調用chmod()來爲其他人設置執行位,或者我想你可以執行chmod shell實用程序)。缺點是shell將不得不使用長/data/data/some.package.name路徑,其中中間/數據文件夾不可瀏覽!

相關問題