<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團(tuán)論壇3G手機(jī)技術(shù)專區(qū)Android系統(tǒng)開發(fā) → android的文件系統(tǒng)結(jié)構(gòu)及其引導(dǎo)過程的初步理解


      共有7814人關(guān)注過本帖樹形打印

    主題:android的文件系統(tǒng)結(jié)構(gòu)及其引導(dǎo)過程的初步理解

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發(fā)短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    android的文件系統(tǒng)結(jié)構(gòu)及其引導(dǎo)過程的初步理解  發(fā)帖心情 Post By:2010-12-2 14:15:27

    1、android文件系統(tǒng)的結(jié)構(gòu)
    android源碼編譯后得到system.img,ramdisk.img,userdata.img映像文件。其中, ramdisk.img是emulator的文件系統(tǒng),system.img包括了主要的包、庫等文件,userdata.img包括了一些用戶數(shù)據(jù),emulator加載這3個映像文件后,會把 system和 userdata分別加載到 ramdisk文件系統(tǒng)中的system和 userdata目錄下。因此,我們可以把ramdisk.img里的所有文件復(fù)制出來,system.img和userdata.img分別解壓到 ramdisk文件系統(tǒng)中的system和 userdata目錄下。

    2、分離android文件系統(tǒng)出來
    system.img,ramdisk.img,userdata.img映像文件是采用cpio打包、gzip壓縮的,可以通過file命令驗證:
    file ramdisk.img,輸出:
    ramdisk.img: gzip compressed data, from Unix, last modified: Wed Mar 18 17:16:10 2009
    Android源碼編譯后除了生成system.img,userdata.img之外還生成system和 userdata文件夾,因此不需要解壓它們。Android源碼編譯后還生成root文件夾,其實root下的文件與 ramdisk.img 里的文件是一樣的,不過這里還是介紹怎樣把 ramdisk.img解壓出來:
    將ramdisk.img復(fù)制一份到任何其他目錄下,將其名稱改為ramdisk.img.gz,并使用命令
    gunzip ramdisk.img.gz
    然后新建一個文件夾,叫ramdisk吧,進(jìn)入,輸入命令
    cpio -i -F ../ramdisk.img
    這下,你就能看見并操作ramdisk里面的內(nèi)容了。
    然后把Android源碼編譯后生成的system和 userdata里的文件復(fù)制到 ramdisk/system和 ramdisk/userdata下。這樣就得到一個文件系統(tǒng)了。

    3、使用網(wǎng)絡(luò)文件系統(tǒng)方式掛載android文件系統(tǒng)
    因此,我們需要建立/nfsroot目錄,再建立/nfsroot/androidfs目錄,把剛才的android文件系統(tǒng)改名為androidfs,并鏈接到/nfsroot/androidfs

    4、android內(nèi)核引導(dǎo)文件系統(tǒng)
    android內(nèi)核掛載/nfsroot/androidfs之后,根據(jù)init.rc,init.goldfish.rc來初始化并裝載系統(tǒng)庫、程序等直到開機(jī)完成。init.rc腳本包括了文件系統(tǒng)初始化、裝載的許多過程。init.rc的工作主要是:
    1)設(shè)置一些環(huán)境變量
    2)創(chuàng)建system、sdcard、data、cache等目錄
    3)把一些文件系統(tǒng)mount到一些目錄去,如,mount tmpfs tmpfs /sqlite_stmt_journals
    4)設(shè)置一些文件的用戶群組、權(quán)限
    5)設(shè)置一些線程參數(shù)
    6)設(shè)置TCP緩存大

    支持(0中立(0反對(0單帖管理 | 引用 | 回復(fù) 回到頂部

    返回版面帖子列表

    android的文件系統(tǒng)結(jié)構(gòu)及其引導(dǎo)過程的初步理解








    簽名