android eclipse services,Eclipse中调试Android Framework本地代码模块部分过程记录
環(huán)境:Amlogic S905M2 +
ubunt12.04 + win7 + adt_bundle_linux + Android SDK
過程:
1.
為避免用Eclipse基礎(chǔ)版本(Luna)后需要安裝包括adt、cdt等插件麻煩,直接解壓adt_bundle_linux安裝IDE環(huán)境
2.
調(diào)試準備:目標設(shè)備(Amlogic S905M2
)中需要有g(shù)dbserver;host主機(ubuntu)中需要交叉編譯版本的gdb。gdb可采用$(AOSPROOT)\prebuilts\gcc\linux-x86\arm\arm-eabi-4.7\bin已編譯好的版本(這里需要注意的是$(AOSPROOT)\prebuilts\gcc\linux-x86\arm目錄下存在多個版本,選擇--version執(zhí)行無差錯的,僅供參考),相應(yīng)的在目錄$(AOSPROOT)\prebuilts\misc\android-arm\gdbserver,ps:注意確保兩者版本的一致性。
3. 具體步驟:
(1)新建工程項目,導入代碼。啟動Eclipse后,File->New Project->Makefile Project
with Existing Code
(2)點擊Next,配置project,點擊Finish
(3)設(shè)置property。載入源碼為了編輯和跟蹤,而不是為了編譯工程,因此需要Disable編譯選項。在Property窗口中的C/C++
Build中的Builder Settings中取消Use default build
command,并隨意填寫個編譯器的名稱
(4)編譯要調(diào)試部分源碼的debug版本(帶調(diào)試symbol,AOSP源碼在linux中編譯)。
cd?$(AOSPROOT)
#source
build/envsetup.sh
#lunch
$(DEVICE_MODULE_NAME)(僅限于與Amlogic S905M2 相關(guān)的device部分)
#cd
$(AOSPROOT)/framework/native/services/surfaceflinger
#vi
Android.mk?(將其中的LOCAL_CFLAGS加上"
-O0 -g ")
#mm
-B LOCAL_STRIP_MODULE=false
(5)燒錄。不采取整體的燒錄,只將前一步驟生成的libsurfaceflinger.so上傳至設(shè)備的/system/bin目錄中,reboot設(shè)備重啟即可
#adb
connect?DeviceIP
#adb
push
$(AOSPROOT)/out/target/product/XXX/symbols/system/lib/libsurfaceflinger.so
#reboot
(6)遠程調(diào)試其它配置。在Eclipse調(diào)試之前,需要告訴gdb哪里去查找標準庫的符號信息,新建配置文件gdb4android.cmds,添加如下內(nèi)容
set
solib-absolute-prefix
$(AOSPROOT)/out/target/product/cmcc_zhejiang/symbols
set
solib-search-path
$(AOSPROOT)/out/target/product/cmcc_zhejiang/symbols/system/bin:
solib-search-path
$(AOSPROOT)/out/target/product/cmcc_zhejiang/symbols/system/lib
(7)Debug
Configuration配置如下
展開Debug
Tab,設(shè)置GDB debugger和GDB command file,點擊Apply后Close
點擊Debugger的子TAB-Connection
(8)設(shè)置調(diào)試會話
Device端:
setprop
service.adb.tcp.port 5555
stop
adbd
start
adbd
host端:
#adb
connect?DeviceIP
#adb
forward tcp:10000 tcp:10000
#adb
shell gdbserver :10000
--attach?THREADIP(THREADIP為SurfaceFlinger進程ID號)
Eclipse點擊Debug后,在device端任意移動焦點就可進入斷點(SurfaceFlinger相關(guān)類中)
調(diào)試Android
Framework本地代碼部分通常采用打印輸出來進行調(diào)試較為普遍,而常用上述直觀的斷點調(diào)試在整個過程中會遇到諸多的問題,連接問題、設(shè)備彈出、設(shè)備重啟需要重新設(shè)置連接等,所幸最終能成功搭建好并成功進入設(shè)置的斷點,也是碰到并解決了諸多的問題,使用各種工具,mark一下^@^
總結(jié)
以上是生活随笔為你收集整理的android eclipse services,Eclipse中调试Android Framework本地代码模块部分过程记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国产大飞机第一次用上国产GPU!翔腾微电
- 下一篇: android sina oauth2.