Android 命令行調試

jopen 9年前發布 | 11K 次閱讀 Android Android開發 移動開發
 

傳統方式調試 NDK 開發的程序比較麻煩,先要編譯成 JNI,又要導出 java接口,還要再寫一個 java 工程,改一個地方又要連續改幾處,這樣效率是很低的。最頻繁使用的關鍵工作路徑(編譯/調試環節)如果能極致簡化,那么可以帶來開發效率的成倍提升。其實安卓官方是提供了命令行調試方法的,將你需要調試的 C代碼用 NDK直接編譯成可執行,然后到設備上執行:

使用 NDK 導出獨立工具鏈,方便以后使用,在 cygwin 下面,將 $NDK 環境變量代表的路徑設置好,然后:

cd $NDK

chmod -R 755 *

build/tools/make-standalone-toolchain.sh –ndk-dir=$NDK –platform=android-9 –arch=arm –install-dir=/…../path-to-android-9

這樣就導出了一套針對 API9 的獨立工具鏈(包含 gcc, ld, ndk必要文件),以后方便使用,比如導出到 d:\android-9下面,那么以后可以跳過 cygwin,直接編譯我們的 Hello World:

d:\android-9\bin\arm-linux-androideabi-gcc.exe hello.c –o hello

于是你可以在命令行下直接開發 Android 的非 GUI 應用程序了。

調試也很簡單,用 adb push 上傳到 /data/local/tmp 下面,并且設置可執行模式為 755:

adb push hello /data/local/tmp/helloadb shell chmod 755 /data/local/tmp/hello

運行就是直接:

adb shell /data/local/tmp/hello

不要傳到其他目錄,比如 /sdcard,這些目錄 mount時有 NOEXEC 權限,不能給文件增加可執行權限,而 /data/local/tmp 就是留給大家調試命令行用的,并且不需要 root 權限。

可以編寫一些腳本,每次編譯好自動上傳,配置到你的 Editplus/Vim/Npp 中,一鍵編譯上傳,一鍵運行。比起以前調試下 C代碼還需要寫一大堆 jni 和 java 的方式,效率高極了。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!