一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

ANDRIOD學習筆記之nand、root以及主要調(diào)試工具篇

 xyjackxjw 2013-06-08

ANDRIOD學習筆記之nand、root以及主要調(diào)試工具篇

2012-4-15 09:02|發(fā)布者: benben|查看: 1740|評論: 0

摘要: 昨天寫了Android的開發(fā)如何初始化環(huán)境配置,今天繼續(xù)說說Android開發(fā)調(diào)試的幾大工具,主要是adb fastboot 和emulator。一般使用eclipse進行開發(fā)的Android開發(fā)者也許完全不需要用到這幾個命令,但是,若要了解到系統(tǒng) ...

 昨天寫了Android的開發(fā)如何初始化環(huán)境配置,今天繼續(xù)說說Android開發(fā)調(diào)試的幾大工具,主要是adb fastboot 和emulator。一般使用eclipse進行開發(fā)的Android開發(fā)者也許完全不需要用到這幾個命令,但是,若要了解到系統(tǒng)內(nèi)部,工具無疑就是解剖Android的手術(shù)刀。

 

Android的NAND結(jié)構(gòu)與Root的過程

       Android的刷機、Root、開發(fā)調(diào)試過程中不可避免的涉及到Android的NAND(翻譯做閃存?)。耳熟能詳?shù)闹饕獛状蠓謪^(qū)有boot、system、userdata、和recovery。
 

        system、userdata分區(qū)在Android文件系統(tǒng)中被掛載為/system和/data目錄,這兩個目錄在使用調(diào)試工具adb的時候可以看得到,/data允許進行讀寫,主要存放用戶自安裝的程序以及使用設(shè)備產(chǎn)生的用戶個人數(shù)據(jù),system目錄存放系統(tǒng)的文件以及預裝的重要的系統(tǒng)應用,掛載到文件系統(tǒng)中不允許讀寫(除非設(shè)備被Root)。boot分區(qū)則存放操作系統(tǒng)的內(nèi)核和initrd。recovery分區(qū)包含了一套后備的系統(tǒng),主要在設(shè)備升級、備份、維護的時候使用,簡單的說,要刷ROM需要進入recovery模式。

 

        在設(shè)備的正常工作狀態(tài)(即是設(shè)備沒有被Root的時候)下,只有userdata和cache分區(qū)是可讀寫的,其他分區(qū)則一般處在只讀狀態(tài)。這種設(shè)計的本意是保護系統(tǒng)以及系統(tǒng)的重要程序不被惡意纂改,保證系統(tǒng)的安全性,但是,當recovery分區(qū)上的recovery.img被覆蓋成另一個版本(例如ClockWorkMod recovery image),recovery分區(qū)上的NAND保護機制被破壞了,NAND的分區(qū)就完全失去了保護,可以自由的更新system.img和boot.img,此時,可以說設(shè)備被Root了,或者說Nand處在"解鎖(unlocked)"狀態(tài)。因此,Android智能手機用戶自己動手Root手機設(shè)備以及使用網(wǎng)上下載的手機文件來更新Nand(刷機),這是危險的舉動。

fastboot的用法

        fastboot是Android SDK的用來讀寫NAND的工具,位于android-sdk-linux/platform-tools目錄下,下面介紹fastboot的主要用法。
 
        1、手機首先要進入fastboot狀態(tài)/recovery模式下,有些設(shè)備必須確保設(shè)備處在S-OFF (security off)狀態(tài)。 下面以華為的C8500設(shè)備來說明。
 
        a:首先關(guān)機
        b:按住“音量減鍵”不放開,按住紅色“掛斷鍵”不放開(請一直不要放開按住的“音量減鍵”),按住“電源鍵”不放開(請一直不要放開按住的“音量減鍵”與紅色“掛斷鍵”)
        c:持續(xù)按住大約五秒鐘(三鍵同時按?。?手機顯示停頓在華為Logo畫面(手機主界面并沒有繼續(xù)啟動,即一直停頓在華為Logo開機畫面),即表示手機進入fastboot模式
 
2、下面這幾個命令刷寫NAND的主要分區(qū),并重啟。
fastboot flash userdata data.img
fastboot flash system system.img
fastboot flash boot boot.img
fastboot reboot

 

3、刷寫recovery分區(qū)并重啟
fastboot flash recovery /path/to/.img
fastboot reboot
4、擦除分區(qū)
fastboot erase boot
fastboot erase recovery
ADB的用法
 
        刷機完成后,在日常開發(fā)調(diào)試過程中,最重要的工具是adb(Android Debug Bridge),這個工具位于android-sdk-linux/platform-tools目錄下。豌豆夾之類的軟件是基于adb的底層機制做成的應用(由于這種應用和adb一樣需要設(shè)備工作在開發(fā)調(diào)試模式下,相信Android官方其實不想鼓勵這種應用)。
        ADB的用法說明:
 
        1、使用USB連接線連接ubuntu和智能手機設(shè)備,并在設(shè)備上打開調(diào)試模式。設(shè)置->應用程序->開發(fā)->USB調(diào)試選項打勾。
        2、adb devices能夠看到設(shè)備的狀態(tài),adb shell能夠連接上去設(shè)備看到一個linux的系統(tǒng),使用ls還能看到文件目錄
        ~/android/sdk/android-sdk-linux/platform-tools$ ./adb devices
        List of devices attached 
        0A3AABB70502A00Adevice
 
        ~/android/sdk/android-sdk-linux/platform-tools$ ./adb shell

       # ls
       acct                 init                 sd-ext
       cache                init.c8500.rc        sdcard
       config               init.goldfish.rc     sys
       d                    init.rc              system
       data                 mnt                  ueventd.goldfish.rc
       default.prop         proc                 ueventd.huawei.rc
       dev                  root                 ueventd.rc

       etc                  sbin                 vendor

 

 
3、上傳下載文件
        adb pull
        adb push
4、查看日志
        ~/android/sdk/android-sdk-linux/platform-tools$ ./adb shell
 
        #logcat ActivityManager:I *:S
04-12 16:01:03.255  1262  1272 I ActivityManager: Start proc com.tencent.mm for broadcast com.tencent.mm/.booter.NotifyReceiver: pid=25676       uid=10188 gids={1006, 3003, 1015}
04-12 16:01:03.482  1262  1290 I ActivityManager: Displayed activity com.android.settings/.ApplicationSettings: 323 ms (total 323 ms)
......
 
4、運行系統(tǒng)上的命令,進入adb shell,可以查看到/system/bin有可運行的系統(tǒng)命令使用,此處以sqlite3為例,獲取應用的用戶數(shù)據(jù)(被Root的機器,好危險呀)。
        $ adb -s emulator-5554 shell
        # sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db
        SQLite version 3.3.12
        Enter ".help" for instructions
        .... enter commands, then quit...
        sqlite> .exit 

 
emulator的用法
 
        emulator一般的Android開發(fā)人員也許不會了解到,原因是萬能的eclipse IDE配置好了之后,開發(fā)人員就直接寫應用,然后在IDE上運行調(diào)試去了。這無疑很大程度的降低了開發(fā)人員的技術(shù)門檻。emulator位于android-sdk-linux/tools目錄下,相關(guān)的官方文檔:
        emulator的工作原理很簡單,創(chuàng)建開發(fā)機器上的虛擬硬件設(shè)備,在虛擬硬件設(shè)備上面運行系統(tǒng)。如果使用eclipse IDE,在第一次運行程序的時候會自動提醒建立虛擬硬件設(shè)備(圖形界面,直接點擊即可)。手工使用命令行創(chuàng)建虛擬硬件設(shè)備也可以,參考http://developer./guide/developing/devices/managing-avds-cmdline.html。
 
        命令行下創(chuàng)建虛擬硬件設(shè)備:
        ~/android/sdk/android-sdk-linux/tools$ ./android create avd -n my_android2.3 -t 3
        Auto-selecting single ABI armeabi
        Android 2.3.3 is a basic Android platform.
        Do you wish to create a custom hardware profile [no]
        Created AVD 'my_android2.3' based on Android 2.3.3, ARM (armeabi) processor,
        with the following hardware config:
        hw.lcd.density=240
        vm.heapSize=24
        hw.ramSize=256

 
        命令行下運行模擬器,可以看到一個基于qemu虛擬機上運行的android模擬設(shè)備的運行界面:
        ~/android/sdk/android-sdk-linux/tools$ ./emulator -avd my_android2.3
 
        用模擬器加載非系統(tǒng)缺省的調(diào)試NAND文件,創(chuàng)建好虛擬硬件設(shè)備后,使用emulator的參數(shù)指定第三方NAND分區(qū)文件。例如,下面的命令指定了自編譯出來的各種文件:
        ./emulator -avd my_emulator_avd -system ~/cyanogenmod/out/target/product/c8500/system.img -data ~/cyanogenmod/out/target/product/c8500/userdata.img -kernel ~/cyanogenmod/out/target/product/c8500/kernel -ramdisk ~/cyanogenmod/out/target/product/c8500/ramdisk.img -debug all

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    九九热在线免费在线观看| 又大又紧又硬又湿又爽又猛| 亚洲精选91福利在线观看| 国产高清三级视频在线观看| 91精品视频全国免费| 久久一区内射污污内射亚洲| 欧美尤物在线观看西比尔| 国产精品白丝久久av| 国产日韩欧美专区一区| 日韩中文高清在线专区| 情一色一区二区三区四| 99福利一区二区视频| 欧美一级黄片欧美精品| 人妻久久一区二区三区精品99| 不卡中文字幕在线免费看| 东京热男人的天堂一二三区 | 国产日本欧美韩国在线| 国产午夜精品久久福利| 大香蕉伊人一区二区三区| 国产一区二区三区丝袜不卡| 久久精品一区二区少妇| 中文字幕久久精品亚洲乱码| 国产午夜福利一区二区| 日韩av欧美中文字幕| 国产又粗又硬又大又爽的视频| 一区二区三区日本高清| 欧美日韩综合在线第一页| 91人妻丝袜一区二区三区| 色哟哟在线免费一区二区三区| 人妻偷人精品一区二区三区不卡| 精品综合欧美一区二区三区| 一区二区三区人妻在线| 久久精品国产亚洲熟女| 欧美中文字幕一区在线| 日本不卡在线视频你懂的| 国自产拍偷拍福利精品图片| 欧美日韩无卡一区二区| 国产级别精品一区二区视频| 内用黄老外示儒术出处| 日韩特级黄片免费在线观看| 九九热九九热九九热九九热|