乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      android源碼下載以及編譯 - 轉(zhuǎn)載資料 - andykuo

       ydyuhu 2010-01-22
      CUPCAKE 編譯 收藏
      由于論壇改版,很多有用的資源都不見了,所以這里把自己對cupcake下載和編譯方法進行詳細說明,以后還會陸續(xù)發(fā)完善的開發(fā)板移植說明、內(nèi)核編譯說明、一些模塊級的分析等,希望對剛開始做android的朋友有所幫助,同時歡迎高手指正。
         
          一.PC工作環(huán)境準(zhǔn)備 
          1.從Ubuntu官方主頁www. 下載Ubuntu8.04桌面版,然后完全安裝。
          2.打開ubuntu終端,輸入sudo apt-get install命令來通過ubuntu服務(wù)器在線安裝需要使用的軟件,這里不需要選     擇軟件版本,ubuntu服務(wù)器會做自動的版本匹配。待安裝的軟件有flex,bison,gperf,libsdl- dev,libesd0-       dev,libwxgtk2.6-dev,build-essential,python,valgrind,curl,git。執(zhí)行命令后使用 which命令驗證是否      安裝成功,注意,如果缺少部分軟件,或者安裝沒有成功,編譯通常都會遇到問題,無法完成。
          3.從www.java. 下載JDK_1.5.0_18.bin,在ubuntu終端中直接執(zhí)行該程序,默認會被安裝                     到/usr/JDK_1.5.0_18路徑下。在終端中輸入#java–version,如果顯示出java版本信息,說明java安裝成功。
          這里沒有選擇ubuntu的自動安裝,原因主要是有時候下載速度很慢,而且安裝過程有時候會出現(xiàn)問題,反正這樣從     SUN的官網(wǎng)下載安裝也很簡單,呵呵。   
          4.使用export來設(shè)置環(huán)境變量:
          #export JAVA_HOME=/usr/jdk1.5.0_18
          #export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
          #export PATH=$PATH:$JAVA_HOME/bin
          由于因為其它工作需要的原因,這里我還安裝了1.6的JDK,所以使用export的方式來動態(tài)改變環(huán)境變量,而沒有直     接寫到/etc/bash.bashrc中,這個大家可以根據(jù)自己的具體情況來選擇。
          #export PATH=/usr/local/git/bin:/usr/local/git/libexec/git-core:$PATH(對git工具進行設(shè)置,否則無法正      常使用)
          二.代碼下載
          這里的所有代碼指定為Android的cupcake版本,更新日期為2009年4月8日,這個版本是Android一個相對比較新的      版本。
          1.創(chuàng)建工作目錄:
          #mkdir /home/android
          #cd /home/android
          #mkdir bin
          2.下載安裝repo版本管理工具:
          #curl http://android.git./repo > /home/android /bin/repo
          #cd bin
          #chmod a+x repo
          由于Android項目官方采用repo來做同步管理,所以這里只有使用repo才可以做代碼同步。
          3.準(zhǔn)備下載Android:
          #cd /home/android
          #./bin/repo init -u git://android.git./platform/manifest.git –cupcake
          通常情況下會出現(xiàn)error提示(如果是以前沒有創(chuàng)建過repo賬戶的話),這個錯誤可以忽略。最后的-cupcake就是      為了下載cupcake版本,如果不加的話,下載的是master版本,master版本屬于開發(fā)測試版本,很多功能還不穩(wěn)定
          4.配置repo帳戶:
          #git config --global user.email "xxxxx@xxxxxxx "
          #git config --global user.name "xxxxxx"
          郵箱地址填有效郵箱即可,我試過,其實這步跳過也沒有問題。
          5.下載源碼:
          #repo sync
          這個操作就是下載整個Android的源碼到本地,具體花費時間和網(wǎng)速有關(guān),cupcake版本源碼大概1.3G左右。進         入/home/android/可以看到Android的源碼目錄如下:
          --repo  --主要是同步管理所用到的一系列文件
          --bionic  --Android編譯過程所需要的一些庫
          --bootable  --負責(zé)啟動和備份的一些文件
          --build  --最主要的一些makefile和編譯配置文件
          --dalvik  --經(jīng)過Google優(yōu)化了的java虛擬機
          --development  --開發(fā)用的一些文件夾,包括模擬器和工具等
          --external  --Android工程中引入的外部功能庫
          --frameworks  --中間件部分
          --hardware  --和硬件有關(guān)的一些支持文件,包括wifi,電信模塊等
          --kernel  --經(jīng)過了優(yōu)化和修改的linux內(nèi)核
          --packages  --所有的上層應(yīng)用包
          --prebuild  --Android編譯工具所在目錄
          --system  --一些系統(tǒng)級文件
          三.系統(tǒng)和開發(fā)工具編譯
          1.系統(tǒng)編譯
          Android文件系統(tǒng)由于已經(jīng)自帶了經(jīng)過優(yōu)化的交叉編譯工具,并且為所有的源碼都提供了經(jīng)過驗證的makefile,所      以系統(tǒng)的整體編譯相對簡單,官方發(fā)布的版本中基本功能都已經(jīng)包含進了makefile中,但是我下載的版本的中文       的輸入法沒有被引入,這里做適當(dāng)修改:
          #cd /home/android/build/target/product/
          #gedit generic.mk
          打開這個文件后,在PRODUCT_PACKAGES中,加入PinyinIME,然后保存退出。這樣在整體編譯的時候就會把中文輸入     法也編譯進system中了。
          修改完成后:
          #cd /home/android/
          #make
          第一次進行整體編譯,這個過程大概持續(xù)2到3小時,默認情況下,會在/home/android/目錄下生成一個out文件夾      ,所有的編譯生成物都在這一目錄下。如果想更改生成文件的目錄,請參考/build/buildspec.mk.default文件中      的說明和選項,很簡單,相信大家都能看懂。如果編譯過程中出現(xiàn)問題,請自行檢查上面PC工作環(huán)境準(zhǔn)備部分中是     否哪里出了問題,就不要在論壇里反復(fù)問了,因為這樣的問題應(yīng)該是自己參考這個帖子后可以完全自己解決的。
         
          2.開發(fā)工具的編譯
          Android提供了完整的開發(fā)工具和交叉編譯工具,這些都包含在了源碼內(nèi),所以只要對源碼正確編譯,就可以獲得      豐富的開發(fā)工具,并且Android的移植工作也需要這些工具的支持。
          編譯Android開發(fā)工具的步奏如下:
          #cd /home/android/
          #make sdk
          如果出現(xiàn)無法正常編譯的情況,請檢查JDK1.5.0_18的環(huán)境變量配置是否成功。正常情況下最后在/home/android/      目錄下會生長一個out文件夾。
          #cd /out/host/linux-x86/sdk/
          可以看到這里有了一個名叫android-sdk_eng.root_linux-x86的文件夾,這個文件夾基本包含了Android的模擬器      和所有的開發(fā)調(diào)試工具。打開這個文件夾,可以看到這里主要由以下幾部分組成:
          --add-ones  --需要增加的新工具路徑
          --docs  --關(guān)于模擬器和各種開發(fā)工具的說明等
          --platform  --模擬器和開發(fā)工具需要的文件
          --tools  --模擬器和開發(fā)工具的應(yīng)用程序
          四.模擬器使用和文件系統(tǒng)提取
          1.模擬器使用
          進入~/android-sdk_eng.root_linux-x86/tools目錄下,這里有很多Android的工具,其中模擬器對應(yīng)的應(yīng)用程        序是emulator。下面是正確使用模擬器的步奏:
          #./android create avd –n NO1 –t 1
          這個命令會進入創(chuàng)建avd的過程,按自己的需要做出一些選擇后,名稱為NO1的avd就創(chuàng)建成功了,以后可以通過這      個創(chuàng)建的avd來使用模擬器。1.4之前的版本不需要這樣創(chuàng)建,1.5版本后不正確創(chuàng)建是無法使用的。
          #./android list avd
          輸入命令來檢查創(chuàng)建是否成功,如果成功會列出來。
          #./emulator –avd NO1
          啟動剛才創(chuàng)建的名為NO1的模擬器,使用的內(nèi)核,文件系統(tǒng)等均使用默認的,即~/android-sdk_eng.root_linux-       x86/platform/路徑下的內(nèi)核和文件系統(tǒng)。沒什么問題的話,我們就可以看到Android操作系統(tǒng)的虛擬界面了。
          2.使用自己編譯的系統(tǒng)
          Android可以運行在開發(fā)板上的文件系統(tǒng)的提取需要依靠模擬器,具體的操作步奏如下:
          #cd /home/android/out/ android-sdk_eng.root_linux-x86/tools/
          #./mksdcard –l 200M /home/sdcard.img
          這里使用mksdcard開放工具在/home目錄下建立一個200M的sdcard.img,用于模擬器中數(shù)據(jù)和外部數(shù)據(jù)的交互,虛      擬SD卡的大小不應(yīng)該小于100M,否則在后期的文件系統(tǒng)打包過程中,有可能會有SD卡存儲空間不夠的問題。
          #./android create avd –n cupcake –t –c /home/sdcard.img 1
          創(chuàng)建一個名為cupcake的,附帶有sdcard的虛擬設(shè)備。
          #./emulator –avd cupcake –sysdir /home/android/out/target/product/generic –data                     /home/android/out/target/product/generic/userdata.img  -ramdisk                     /home/android/out/target/product/generic/ramdisk.img –kernel /home/android/prebuild/android-            arm/kernel/kernel-qemu
          使用名為cupcake的虛擬設(shè)備啟動模擬器,并規(guī)定系統(tǒng),數(shù)據(jù)等的映象文件路徑,模擬器內(nèi)核采用                    prebuild/android-arm/kernel/kernel-qemu。當(dāng)然也可以使用自己編譯的內(nèi)核鏡像,關(guān)于如果編譯內(nèi)核的問題會      在以后陸續(xù)發(fā)貼說明。
          打開一個新的終端進行操作:
          #cd /home/android/out/ android-sdk_eng.root_linux-x86/tools/
          #./adb remount
          這里使用adb工具的remount選項來使模擬器中的system目錄權(quán)限改為可讀寫。
          #./adb push tar /system/bin
          這里使用adb工具的push指令將提前使用busybox做好的tar應(yīng)用程序加入到模擬器的/system/bin目錄下。關(guān)于         busybox的使用這里不作介紹,網(wǎng)上太多了,呵呵
          #./adb shell
          這里使用adb工具進入到模擬器的shell中。
          進入到Android模擬器的shell中操作如下:
          #tar xvf /sdcard/system.tar /system
          #tar xvf /sdcard/userdata.tar /data
          這里使用前面加入到模擬器中的tar應(yīng)用程序來對system和data目錄下所有內(nèi)容進行打包,并存儲到sdcard里。操      作結(jié)束后,進入sdcard目錄下查看是否有了system.tar和userdata.tar文件,如果有,則證明打包成功?! ?nbsp;       
          #exit
          退出shell,并關(guān)閉模擬器。
          #mount –o loop sdcard.img /mnt
          #cd /mnt
          這里將虛擬SD卡掛載在/mnt目錄下,進入/mnt目錄后,就可以將system.tar和userdata.tar拷貝出來,文件系統(tǒng)的     提取完成。
         
          經(jīng)過測試,發(fā)現(xiàn)其實使用android提供的mkyaffsimage直接對/out/target/product/generic/system目錄進行打包      ,制作出system.img也完全可以使用,不過不知道userdata.img如何制作,希望有人可能指點。使用        mkyaffs2image制作文件系統(tǒng)映像時要注意的是一些配置文件的權(quán)限問題,比如/system/usr/keylayout下的文件       權(quán)限就有問題,需要修改,否則生成的映像在模擬器中加載后,鍵盤等無法正常使用。
          最后,要說的是,新加入android的朋友們遇到問題我個人建議最好不要立刻就問,畢竟是個80%以上都開源的系      統(tǒng),不妨自己嘗試解決問題,到論壇逛逛,在網(wǎng)上搜索下,或者自己讀下源碼,都是一種提高。拿到的資源其實都     是一樣的,學(xué)到的東西,得到的鍛煉卻是不同的。
      昏天暗地的花了兩天時間, 終于在Fedora 8 上成功編譯了android 1.5, 和大家分享一下編譯的經(jīng)驗:)
      一 準(zhǔn)備編譯環(huán)境
      Fedora 8 已經(jīng)包含了編譯android 時所需的大部分開發(fā)包, 我們還需要安裝git 和gperf.
      開始終端, 敲入下面的命令:
      $ yum install git-core
      $ yum install gperf
      Fedora 8 自帶的java 開發(fā)包是JDK6, 而編譯nadroid 時需要JDK5, 否則在make sdk 時會出現(xiàn)錯誤.
      可以從sun 網(wǎng)站下載jdk-1_5_0_18-linux-i586-rpm.bin , 我下載到了opt 目錄下.
      在終端上敲入如下命令:
      $ cd /opt
      $ chmod a+x jdk-1_5_0_18-linux-i586-rpm.bin
      $ ./jdk-1_5_0_18-linux-i586-rpm.bin
      文件會在/opt 下自動生成jdk1.5.0_18 子目錄, 并解壓.
      然后需要設(shè)置JAVA 主目錄, 編輯/etc/bashrc 文件:
      $ vi /etc/bashrc
      點擊insert 或i 鍵, 進入insert 模式, 在文件末尾添加, 
      export JAVA_HOME=/opt/jdk.1.5.0_18
      export PATH=$JAVA_HOME/bin:$PATH
      export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
      點擊esc, 進入命令模式, 輸入":wq", 然后敲入reboot 重新啟動.
      啟動后, 開啟終端, 輸入"java -version", 如果提示當(dāng)前版本為1.5.0_18, 則安裝成功.
      二 下載源代碼
      先要下載repo, 如果以root 用戶登陸, 則可以將repo 下載/root/bin 目錄下( 也可以下載/home/bin 目錄下, 但要將目
      錄加入到PATH 中):
      $ curl http://android.git./repo > /root/bin/repo
      $ chmod a+x /root/bin/repo
      然后在home 下建立mydroid 文件夾, 當(dāng)然可以在其他你喜歡的目錄下建立:
      $ cd /home
      $ mkdir mydroid
      $ cd mydroid
      輸入以下命令:
      $ repo init -u git://android.git./platform/manifest.git
      不出意外的話, 完成后應(yīng)該顯示"repo initialized in /mydroid".
      最后輸入"repo sync" 開始下載源代碼.
      工程很大, 只是下載代碼的話需要留出2G 以上的空間, 如果還要編譯那就需要留出6G 以上的空間.
      三 編譯
      下載完成后進入源代碼目錄, 開始編譯, 如下:
      $ cd /home/mydroid
      $ make
      完成后會生成system.img 等文件.
      由于android1.5 版本SDK 的目錄結(jié)構(gòu)有所變化, 所以ADT0.8.0 不能再使用了, 我們需要自己編譯ADT:
      $ ./development/tools/eclipse/scripts/build_server.sh /home
       
       
       
       
       
       

      "/home" 是編譯好 ADT 后的輸出目錄 , 可以指定其他你喜歡的目錄,在這個過程中可能會自動下載
      eclipse, 貌似是由于沒有設(shè)定 ECLIPSE_HOME 環(huán)境變量的原因 , 不過沒有細究 :). 最后需要生成linux
      下的SDK, 如下:
      $ make sdk
      成功后, 會在./out/host/linux-x86 下生成sdk 文件夾, 其中包含了我們需要的SDK.
      注意將SDK 目錄加入到PATH 下, 修改/etc/bashrc, 加入
      export PATH=/home/mydroid/out/host/linux-x86sdk/android-sdk_eng.root_linux-x86/tools:$PATH
      四 linux 上運行
      需要卸載eclipse 上原來的ADT0.8.0( 如何卸載就不說了, 不過要注意卸載干凈,ADT Editor 也一并卸載).
      啟動android1.5 的emulator 時需要avd 文件, 先輸入"android list targets" 取得target ID, 例如為1, 然后,
      $ android create avd -n my_avd -t 1
      創(chuàng)建avd 文件后, 即可啟動emulator,
      $ emulator -avd my_avd
      啟動很慢, 要耐心等待.
      五 生成window 下 SDK
      需要將mydroid 目錄和編譯的ADT, 復(fù)制到windows 下, 我是在window xp 下使用explore2fs 讀取linux 分區(qū)進行的
      復(fù)制.然后安裝cygwin, 注意默認的文本類型要設(shè)置為DOS/text, 這些開發(fā)包autoconf, bison, curl, flex, gcc,
      g++,git,gnupg, make, mingw-zlib, python, zip, unzip 都要選上, 不要選擇readline.
      打開development/build/tools/make_windows_sdk.sh 文件,
      找到"SDK_NUMBER=`echo $filename | sed -n 's/^.*_\([^_./]\+\)_[^_.]*\..*$/\1/p'`", 修改為
      #SDK_NUMBER=`echo $filename | sed -n 's/^.*_\([^_./]\+\)_[^_.]*\..*$/\1/p'`
       SDK_NUMBER=1.5
       然后在cygwin 中輸入以下命令:
       $ cd mydroid
       $ mkdir -p out/host/windows-x86/sdk
       $ development/ build / tools / make_windows_sdk.sh  out / host / linux - x86 / sdk / android-sdk_eng.root_linux-x86.zip  out / host / windows - x86 / sdk
      同樣在eclipse 中安裝我們編譯的ADT, 指定sdk 目錄. 啟動emulator 之前還要生成avd 文件.
      六 我上傳了,可以下載
      我將我編譯的版本android1.5 壓縮后上傳到了rayfile 中, 大家可以下載.文件中的android-eclipse-v200904252140.zip就是編譯好的ADT.
      構(gòu)建Windows版的Android SDK
       
       
      來源: ChinaUnix博客  日期: 2009.04.10 22:38 (共有0 條評論) 我要評論 
       
      下面是構(gòu)建Windows版Android SDK的步驟:
      1. 在Ubuntu系統(tǒng)里對mydroid做如下Build
        $ cd mydroid
        $ make
        $ make sdk
      2. 把Build好的mydroid目錄拷貝到Windows系統(tǒng)中
      3. 安裝cygwin
      - 下載地址:
      http://www./
      - 設(shè)置默認的文本文件類型為DOS/text
      - 記住把下面的包都選上autoconf, gcc, g++, bison, python, zip, unzip, mingw-zlib, flex, make, vim
      - 最好把emacs, wget, openssh, rsync也都選擇安裝上
      - 不要安裝readline
      4. 在Build腳本中指定SDK版本號
         腳本文件位置在development/build/tools/make_windows_sdk.sh
         找到'SDK_NUMBER',將其值設(shè)置為1.5。如下所示:
          #SDK_NUMBER=`echo $filename | sed -n 's/^.*_\([^_./]\+\)_[^_.]*\..*$/\1/p'`
          SDK_NUMBER=1.5
      5. 啟動cygwin,執(zhí)行如下步驟
        $ cd mydroid
        $ mkdir -p out/host/windows-x86/sdk
        $ development/build/tools/make_windows_sdk.sh out/host/linux-x86/sdk/android-sdk_eng.me_linux-x86.zip out/host/windows-x86/sdk
         現(xiàn)在到out/host/windows-x86/sdk目錄里看一下吧,SDK的zip壓縮包文件應(yīng)該在那里了。
      6. 解壓SDK的zip壓縮包
         在最新的capcake的SDK目錄是,emulator.exe的位置在tools子目錄下,幾個系統(tǒng)image文件在platforms\android-1.5\images子目錄里。
      注:
      1. 在寫本文時,由于編譯出的emulator.exe無法執(zhí)行,所以這里使用了emulator單獨發(fā)布的代碼包(
      android-emulator-1.0_r2.tar.bz2
      )。
      由于該版本的代碼沒有對新SDK的目錄結(jié)構(gòu)作相應(yīng)更新。所以,在啟動emulator.exe程序時,需要用'-system'參數(shù)指定image文件存
      放的路徑,并用'-skindir'參數(shù)指定skins目錄的路徑。當(dāng)然,也可以自己在'android_main.c'中修改源代碼,以便能直接用不帶
      參數(shù)的emulator來啟動模擬器。具體如下:
         添加images搜索路徑
      const char *sysdir_paths[] = {
            "%s/lib/images/%s",    /* emulator in , images in /lib/images */
            "%s/%s",                /* emulator and images in the same directory */
            "%s/../%s",
            "%s/http://www.cnblogs.com/%s",          /* emulator in /host/bin, images in  */
            "%s/../platforms/android-1.5/images/%s", /* 這里是新加的內(nèi)容,新的SDK1.5中,images存放在/platforms/android-1.5/images里 */
            0
      };
         修改skins路徑
      if (!opts->skindir)
              optional_file(&opts->skindir, "skindir", opts->system, "../skins");
      2. 修改用戶數(shù)據(jù)的image文件存放的子目錄名
          源代碼中的值目前還是'SDK-1.0',為了和Build出的SDK保持統(tǒng)一,可以修改android.h中的代碼:
      #define ANDROID_SDK_VERSION "SDK-1.5"
      3. 最好把cygwin安裝在C盤根目錄下(C:\),否則需要對Build腳本(make_windows_sdk.sh)作相應(yīng)修改。
          筆者的cygwin安裝在D:\cygwin,所以修改后的內(nèi)容如下所示:
      # We currently need libz from MinGW for aapt
      cp -v /cygdrive/d/cygwin/bin/mgwz.dll "$TOOLS"

      本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/jinlking/archive/2009/05/24/4210155.aspx

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多