當前位置:首頁 » 安卓系統 » android源碼鏡像

android源碼鏡像

發布時間: 2022-09-09 09:38:19

1. 如何搭建 Android SDK 鏡像源

方法/步驟 1、在網站上下載android-sdk的最新版本, 然後直接解壓到磁碟目錄下面。 2、完成android-sdk的下載安裝工作後, 打開Eclipse軟體, 會出現一個需要安裝android-sdk的提示。點擊安裝。 3、然後就會出現類似與下圖樣的彈窗, 可以選擇進行安裝,Extras可以不安裝。然後在選擇右下角安裝。 4、然後可以看到正在進行download pageage操作。進行慢慢等待。 5、在下載過程中會遇到一些錯誤如: 無法連接google下載資源等, 這時候需要調整下配置了如下圖:更改https為http下載。 6、上述方法還不行,就需要設置下本地hosts了, 首先搜索google hosts, 然後將google最新的下載路徑保存到本地host文件中.然後再進行下載, 然後等待下載結束。 7、所選擇的Android api下載完成後, 在ide中可以新建Android的項目路, 然後進行Android開發之旅了。

2. android 使用Vitamio 如何實現視頻鏡像翻轉

vitamio本身沒有這個功能的話你就沒辦法了,它的源碼又沒開放,沒法修改,解碼視頻流會得到每幀的圖像,針對圖像可以實現反轉,前提是你得自己去解碼

3. 求androidx86系統鏡像下載地址,或者文件。。

http://www.android-x86.org/download
這是Android
x86
的官方網站
目前最新版的是 android-x86-4.4-RC2

4. 如何從國內鏡像獲取android源代碼

首先按幫助中的步驟下載repo工具:
[plain] view plain print?
curl https://storage-googleapis.lug.ustc.e.cn/git-repo-downloads/repo > ~/bin/repo
此時查看下載下來的repo文件可以發現其中的REPO_URL已經指向中科大鏡像的地址,因此應該不需要修改:

[plain] view plain print?
REPO_URL = 'https://gerrit-googlesource.lug.ustc.e.cn/git-repo'
接下來運行如下命令初始化倉庫

[plain] view plain print?
repo init -u git://mirrors.ustc.e.cn/aosp/platform/manifest
發現沒有反應,很長時間後應該是超時才退出,報錯說無法訪問https://gerrit-googlesource.lug.ustc.e.cn/git-repo/clone.bundle

把這個地址放到瀏覽器上嘗試發現也是超時無法訪問,最後好像還是指到google的官網去了,感覺應該是因為缺了什麼東西,沒仔細研究。

但我發現中科大鏡像的Git-repo實際上是可以正常訪問的,因此最後使用如下方法:
1. 使用git clone命令直接從中科大鏡像下載repo工具:

[plain] view plain print?
git clone https://gerrit-googlesource.lug.ustc.e.cn/git-repo
git clone成功後可以在git-repo目錄下看到repo以及其他相關的腳本

修改PATH環境變數將git-repo目錄加入PATH
2. 修改REPO_URL
此時查看git clone下來的repo文件可以發現其中的REPO_URL還是指向google官網的,因此需要修改該文件指向中科大鏡像:

[plain] view plain print?
REPO_URL = 'https://gerrit-googlesource.lug.ustc.e.cn/git-repo'
3. 初始化倉庫

修改完repo文件後再運行repo init命令初始化倉庫就可以成功了:

[plain] view plain print?
repo init -u git://mirrors.ustc.e.cn/aosp/platform/manifest
以後就可以使用repo sync命令同步源代碼了,速度很快。
你試試看看

5. 如何建立本地Android源代碼鏡像

在ubuntu 10.04 x64系統上。

第一步,安裝git和repo
apt-get install git-core
curl http://android.git.kernel.org/repo > /bin/repo
chmod a+x /bin/repo

第二步,建立git server

建立一個git server發布目錄
mkdir /pub/gittree

安裝伺服器軟體
apt-get install git-daemon-run

查看伺服器運行情況
ps -ef|grep git
看到
119 24126 24124 0 09:36 ? 00:00:00 /usr/lib/git-core/git-daemon --verbose --base-path=/var/cache /var/cache/git

修改伺服器配置
vi /etc/sv/git-daemon/run
相關內容改成下面這樣的
/usr/lib/git-core/git-daemon --verbose --export-all --base-path=/pub/gittree /pub/gittree

重新啟動這個服務,注意,它是由sv - control and manage services monitored by runsv(8)操作的。
sv stop git-daemon
sv start git-daemon
再用ps -ef|grep git查看,改動的配置是否生效。

第三步,鏡像代碼庫到本地目錄,
mkdir /pub/gittree/android-mirror
cd /pub/gittree/android-mirror
repo init -u git://android.git.kernel.org/platform/manifest.git --mirror
第三步,鏡像代碼庫到本地目錄,
mkdir /pub/gittree/android-mirror
cd /pub/gittree/android-mirror
repo init -u git://android.git.kernel.org/platform/manifest.git --mirror
repo sync
要等很長時間,等它下載完成。如果中間有錯誤發生,下載中斷,則要重做repo sync,會續傳。

第四步,從本里代碼庫里取出代碼,
另啟一個終端窗口,
cp /bin/repo /bin/repo-local
vi /bin/repo-local
將裡面的git://.....改成git://127.0.0.1/android-mirror/ 指向本地服務。

mkdir /pub/test
cd /pub/test
repo-local init -u git://127.0.0.1/android-mirror/platform/manifest.git -b froyo 這里以froyo為例下載一個分支版本。注意,這里不用repo。 git url的寫法,可能有變,如在ti公司omap代碼庫里,就不盡相同。

vi .repo/manifests/default.xml
修改其中的fetch="git://127.0.0.1/android-mirror/" 指向本地代碼庫。

repo-local sync ,這里,不用repo。

mirror下來的代碼庫,並不一定會全,會出現某個project找不到的情況,要去補充下載。

回到之前的那個mirror的終端窗口,當前目錄在 /pub/gittree/android-mirror
vi .repo/manifests/default.xml
照著樣子增加一行project,寫上需要的名字,保存退出。
repo sync + project name ,project的名字,就是剛在default.xml里看到的。
再回到test目錄下,繼紐 repo-local sync

發生過,在android-mirror里sync時,報錯,指出manifest里有uncommited change,這時,將.repo目錄刪去,重新repo init...一次,再repo sync,原來下載的代碼還在,有更新的會補充下載

6. android 編譯的鏡像怎麼看內容

Android編譯系統在初始化的過程中,會通過根目錄下的Makefile腳本載入build/core/main.mk腳本,接著build/core/main.mk腳本又會載入build/core/Makefile腳本,而Android系統鏡像文件就是由build/core/Makefile腳本負責打包生成的。 在build/core/main.mk文件中,與Android系統鏡像文件打包過程相關的內容如下所示: [plain] view plain ...... ifdef FULL_BUILD # The base list of moles to build for this proct is specified # by the appropriate proct definition file, which was included # by proct_config.make. proct_MODULES := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES) # Filter out the overridden packages before doing expansion proct_MODULES := $(filter-out $(foreach p, $(proct_MODULES), \ $(PACKAGES.$(p).OVERRIDES)), $(proct_MODULES)) $(call expand-required-moles,proct_MODULES,$(proct_MODULES)) proct_FILES := $(call mole-installed-files, $(proct_MODULES)) ...... else # We're not doing a full build, and are probably only including # a subset of the mole makefiles. Don't try to build any moles # requested by the proct, because we probably won't have rules # to build them. proct_FILES := endif ...... moles_to_install := $(sort \ $(ALL_DEFAULT_INSTALLED_MODULES) \ $(proct_FILES) \ $(foreach tag,$(tags_to_install),$($(tag)_MODULES)) \ $(call get-tagged-moles, shell_$(TARGET_SHELL)) \ $(CUSTOM_MODULES) \ ) # Some packages may override others using LOCAL_OVERRIDES_PACKAGES. # Filter out (do not install) any overridden packages. overridden_packages := $(call get-package-overrides,$(moles_to_install)) ifdef overridden_packages # old_moles_to_install := $(moles_to_install) moles_to_install := \ $(filter-out $(foreach p,$(overridden_packages),$(p) %/$(p).apk), \ $(moles_to_install)) endif ...... # Install all of the host moles moles_to_install += $(sort $(moles_to_install) $(ALL_HOST_INSTALLED_FILES)) # build/core/Makefile contains extra stuff that we don't want to pollute this # top-level makefile with. It expects that ALL_DEFAULT_INSTALLED_MODULES # contains everything that's built ring the current make, but it also further # extends ALL_DEFAULT_INSTALLED_MODULES. ALL_DEFAULT_INSTALLED_MODULES := $(moles_to_install) include $(BUILD_SYSTEM)/Makefile moles_to_install := $(sort $(ALL_DEFAULT_INSTALLED_MODULES)) ALL_DEFAULT_INSTALLED_MODULES := ...... .PHONY: ramdisk ramdisk: $(INSTALLED_RAMDISK_TARGET) ...... .PHONY: userdataimage userdataimage: $(INSTALLED_USERDATAIMAGE_TARGET) ...... .PHONY: bootimage bootimage: $(INSTALLED_BOOTIMAGE_TARGET) ...... 如果定義在FULL_BUILD這個變數,就意味著我們是要對整個系統進行編譯,並且編譯完成之後 ,需要將編譯得到的文件進行打包,以便可以得到相應的鏡像文件,否則的話,就僅僅是對某些模塊進行編譯。 在前面Android編譯系統環境初始化過程分析一篇文章中,我們提到,變數INTERNAL_PRODUCT描述的是執行lunch命令時所選擇的產品所對應的產品Makefile文件,而變數PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES描述的是在該產品Makefile文件中通過變數PRODUCT_PACKAGES所定義的模塊名稱列表。因此,我們得到的變數proct_MODULES描述的就是要安裝的模塊名稱列表。 我們知道,Android源碼中自帶了很多默認的APK模塊。如果我們想用自己編寫的一個APK來代替某一個系統自帶的APK,那麼就可以通過變數PACKAGES.<new>.OVERRIDES := <old>來說明。其中,<new>表示用來替換的APK,而<old>表示被替換的APK。在這種情況下,被替換的APK是不應該被打包到系統鏡像中去的。因此,我們需要從上一步得到的模塊名稱列表中剔除那些被替換的APK,這是通過Makefile腳本提供的filter-out函數來完成的。 一個模塊可以通過LOCAL_REQUIRED_MODULES變數來指定它所依賴的其它模塊,因此,當一個模塊被安裝的時候,它所依賴的其它模塊也會一起被安裝。調用函數expand-required-moles獲得的就是所有要安裝的模塊所依賴的其它模塊,並且將這些被依賴的模塊也一起保存在變數proct_MODULES中。 注意,這時候我們得到的proct_MODULES描述的僅僅是要安裝的模塊的名稱,但是我們實際需要的這些模塊對應的具體文件,因此,需要進一步調用函數mole-installed-files來獲得要安裝的模塊所對應的文件,也就是要安裝的模塊經過編譯之後生成的文件,這些文件就保存在變數proct_FILES中。 最終需要安裝的文件除了變數proct_FILES所描述的文件之後, 還包含以下四類模塊文件: 1. 變數ALL_DEFAULT_INSTALLED_MODULES描述的文件。 2. 變數CUSTOM_MODULES描述的文件。 3. 與當前編譯類型對應的模塊文件。例如,如果當前設定的編譯類型為debug,那麼所有通過將變數LOCAL_MODULE_TAGS將自己設置為debug的模塊也會被打包到系統鏡像文件中去。 4. 與當前shell名稱對應的模塊文件。例如,如果當前使用的shell是mksh,那麼所有通過將變數LOCAL_MODULE_TAGS將自己設置為shell_mksh的模塊也會被打包到系統鏡像文件中去。 最後,moles_to_install就描述當前需要打包到系統鏡像中去的模塊文件。實際上,我們除了可以通過PACKAGES.$(p).OVERRIDES來描述要替換的APK之後,還可以在一個模塊中通過LOCAL_OVERRIDES_PACKAGES來描述它所替換的模塊。因此,我們需要通過函數get-package-overrides來獲得此類被替換的模塊文件,並且將它們從moles_to_install中剔除,這樣得到的模塊文件才是最終需要安裝的。 確定了要安裝的所有模塊文件之後,就可以將build/core/Makefile文件載入進來了。注意,文件build/core/Makefile是通過變數ALL_DEFAULT_INSTALLED_MODULES來獲得當前所有要打包到系統鏡像文件中去的模塊文件的。 文件build/core/Makefile主要就是用來打包各種Android系統鏡像文件的,當然它也是通過make規則來執行各種Android系統鏡像文件打包命令的。每一個Android鏡像文件都對應有一個make偽目標。例如,在build/core/main.mk文件中,就定義了三個make偽目標ramdisk、userdataimage和bootimage,它們分別依賴於變數INSTALLED_USERDATAIMAGE_TARGET、INSTALLED_USERDATAIMAGE_TARGET和INSTALLED_BOOTIMAGE_TARGET所描述的文件,並且它們分別表示的就是ramdisk.img、userdata.img和boot.img文件。

7. 編譯好的APK怎麼打包進Android鏡像

有一些apk 文件比較重要的,想直接打包到系統中,開機就能使用。網上網路了一下,只有說如何把apk文件打包到system.img 裡面,應該也是類似的。試試參考是否行。
把第三方或自己開發的apk文件編譯到系統文件(system.img)中的方法:
1 (1)源碼編譯後,把apk拷貝到out\target\proct\generic\system\app中。
(2) 執行命令make snod , 把添加的spk編到system.img 中
缺點:執行make clean 後,再次make 完畢需要重新執行上面操作。
2 "方法一"的改進。
(1) 新建一個文件夾目錄,用來存放apk文件
mkdir packages/apps/Prebuilt_apps
cd packages/apps/Prebuilt_apps
在Prebuilt_apps中新建make文件
vi Android.mk
並寫入
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_POST_PROCESS_COMMAND := $(shell cp -r $(LOCAL_PATH)/*.apk $(TARGET_OUT)/app/)
保存退出。
(2) 把需要編譯的apk拷貝到目錄Prebuilt_apps下,執行make ,Prebuilt_apps中的apk就會考被到out\target\proct\generic\system\app中。
(3) 執行make snod 。完成。
此方法執行make clean 後,再次make 完畢,只需要make snod即可(有時make後,out\target\proct\generic\system\app沒有需要添加的apk,此時再make一次即可,速度很快)。
-----------------------
感謝11樓提供的關於編譯成功但無法運行問題的解決方法。
解壓apk,如其中lib(.so)文件,把 .so文件到system\lib下,再編譯。
本人在模擬器上直接加入angrybird.apk(憤怒的小鳥)編譯,編譯後無法運行。把libangrybirds.so拷貝到system\lib下,再編譯後就可以運行

8. android 源碼 怎麼只編譯 systemui

Google提供的Android包含了原始Android的目標機代碼,主機編譯工具、模擬環境,下載的代碼包經過解壓後(這里是Android2.2的源碼包),源代碼的第一層目錄結構如下: -- Makefile -- bionic (bionic C庫) -- bootable (啟動引導相關代碼) -- build (存放系統編譯規則及generic等基礎開發包配置) -- cts (Android兼容性測試套件標准) -- dalvik (dalvik java虛擬機) -- development (應用程序開發相關) -- external (android使用的一些開源的模組) -- frameworks (核心框架——java及C++語言) -- hardware (主要保護硬解適配層HAL代碼) -- libcore -- ndk -- device -- out (編譯完成後的代碼輸出與此目錄) -- packages (應用程序包) -- prebuilt (x86和arm架構下預編譯的一些資源) -- sdk (sdk及模擬器) -- system (文件系統庫、應用及組件——c語言) `-- vendor (廠商定製代碼) bionic 目錄 -- libc (C庫) -- arch-arm (ARM架構,包含系統調用匯編實現) -- arch-x86 (x86架構,包含系統調用匯編實現) -- bionic (由C實現的功能,架構無關) -- docs (文檔) -- include (頭文件) -- inet -- kernel (linux內核中的一些頭文件) -- netbsd (?netbsd系統相關,具體作用不明) -- private (?一些私有的頭文件) -- stdio (stdio實現) -- stdlib (stdlib實現) -- string (string函數實現) -- tools (幾個工具) -- tzcode (時區相關代碼) -- unistd (unistd實現) `-- zoneinfo (時區信息) -- libdl (libdl實現,dl是動態鏈接,提供訪問動態鏈接庫的功能) -- libm (libm數學庫的實現,) -- alpha (apaha架構) -- amd64 (amd64架構) -- arm (arm架構) -- bsdsrc (?bsd的源碼) -- i386 (i386架構) -- i387 (i387架構?) -- ia64 (ia64架構) -- include (頭文件) -- man (數學函數,後綴名為.3,一些為freeBSD的庫文件) -- powerpc (powerpc架構) -- sparc64 (sparc64架構) `-- src (源代碼) -- libstdc++ (libstdc++ C++實現庫) -- include (頭文件) `-- src (源碼) -- libthread_db (多線程程序的調試器庫) `-- include (頭文件) `-- linker (動態鏈接器) `-- arch (支持arm和x86兩種架構) bootable 目錄 -- bootloader (適合各種bootloader的通用代碼) `-- legacy (估計不能直接使用,可以參考) -- arch_armv6 (V6架構,幾個簡單的匯編文件) -- arch_msm7k (高通7k處理器架構的幾個基本驅動) -- include (通用頭文件和高通7k架構頭文件) -- libboot (啟動庫,都寫得很簡單) -- libc (一些常用的c函數) -- nandwrite (nandwirte函數實現) `-- usbloader (usbloader實現) -- diskinstaller (android鏡像打包器,x86可生產iso) `-- recovery (系統恢復相關) -- edify (升級腳本使用的edify腳本語言) -- etc (init.rc恢復腳本) -- minui (一個簡單的UI) -- minzip (一個簡單的壓縮工具) -- mttils (mtd工具) -- res (資源) `-- images (一些圖片) -- tools (工具) `-- ota (OTA Over The Air Updates升級工具) `-- updater (升級器) build目錄 -- core (核心編譯規則) -- history (歷史記錄) -- libs `-- host (主機端庫,有android 「cp」功能替換) -- target (目標機編譯對象) -- board (開發平台) -- emulator (模擬器) -- generic (通用) -- idea6410 (自己添加的) `-- sim (最簡單) `-- proct (開發平台對應的編譯規則) `-- security (密鑰相關) `-- tools (編譯中主機使用的工具及腳本) -- acp (Android "acp" Command) -- apicheck (api檢查工具) -- applypatch (補丁工具) -- apriori (預鏈接工具) -- atree (tree工具) -- bin2asm (bin轉換為asm工具) -- check_prereq (檢查編譯時間戳工具) -- dexpreopt (模擬器相關工具,具體功能不明) -- droiddoc (?作用不明,java語言,網上有人說和JDK5有關) -- fs_config (This program takes a list of files and directories) -- fs_get_stats (獲取文件系統狀態) -- iself (判斷是否ELF格式) -- isprelinked (判斷是否prelinked) -- kcm (按鍵相關) -- lsd (List symbol dependencies) -- releasetools (生成鏡像的工具及腳本) -- rgb2565 (rgb轉換為565) -- signapk (apk簽名工具) -- soslim (strip工具) `-- zipalign (zip archive alignment tool) dalvik目錄 dalvik虛擬機 . -- dalvikvm (main.c的目錄) -- dexmp (dex反匯編) -- dexlist (List all methods in all concrete classes in a DEX file.) -- dexopt (預驗證與優化) -- docs (文檔) -- dvz (和zygote相關的一個命令) -- dx (dx工具,將多個java轉換為dex) -- hit (?java語言寫成) -- libcore (核心庫) -- libcore-disabled (?禁用的庫) -- libdex (dex的庫) -- libnativehelper (Support functions for Android's class libraries) -- tests (測試代碼) -- tools (工具) `-- vm (虛擬機實現) development 目錄 (開發者需要的一些常式及工具) -- apps (一些核心應用程序) -- BluetoothDebug (藍牙調試程序) -- CustomLocale (自定義區域設置) -- Development (開發) -- Fallback (和語言相關的一個程序) -- FontLab (字型檔) -- GestureBuilder (手勢動作) -- NinePatchLab (?) -- OBJViewer (OBJ查看器) -- SdkSetup (SDK安裝器) -- SpareParts (高級設置) -- Term (遠程登錄) `-- launchperf (?) -- build (編譯腳本模板) -- cmds (有個monkey工具) -- data (配置數據) -- docs (文檔) -- host (主機端USB驅動等) -- ide (集成開發環境) -- ndk (本地開發套件——c語言開發套件) -- pdk (Plug Development Kit) -- samples (演示程序) -- AliasActivity () -- ApiDemos (API演示程序) -- BluetoothChat (藍牙聊天) -- BrowserPlugin (瀏覽器插件) -- BusinessCard (商業卡) -- Compass (指南針) -- ContactManager (聯系人管理器) -- CubeLiveWall** (動態壁紙的一個簡單常式) -- FixedGridLayout (像是布局) -- GlobalTime (全球時間) -- HelloActivity (Hello) -- Home (Home) -- JetBoy (jetBoy游戲) -- LunarLander (貌似又是一個游戲) -- MailSync (郵件同步) -- MultiResolution (多解析度) -- MySampleRss (RSS) -- NotePad (記事本) -- RSSReader (RSS閱讀器) -- SearchableDictionary (目錄搜索) -- **JNI (JNI常式) -- SkeletonApp (空殼APP) -- Snake (snake程序) -- SoftKeyboard (軟鍵盤) -- Wiktionary (?維基) `-- Wiktionary**(?維基常式) -- scripts (腳本) -- sdk (sdk配置) -- simulator (?模擬器) -- testrunner (?測試用) `-- tools (一些工具)

9. android系統app frameworks層,hal層,core libs代碼編譯之後在哪個鏡像里

Google提供的Android包含了原始Android的目標機代碼,主機編譯工具、模擬環境,的代碼包經過解壓後(這里是Android2.2的源碼包),源代碼的第一層目錄結構如下:
|-- Makefile
|-- bionic (bionic C庫)
|-- bootable (啟動引導相關代碼)
|-- build (存放系統編譯規則及generic等基礎開發包配置)

|-- cts (Android兼容性測試套件標准)
|-- dalvik (dalvik JAVA虛擬機)
|-- development (應用程序開發相關)
|-- external (android使用的一些開源的模組)
|-- frameworks (核心框架——java及C++語言)
|-- hardware (主要保護硬解適配層HAL代碼)
|-- libcore
|-- ndk
|-- device
|-- out (編譯完成後的代碼輸出與此目錄)
|-- packages (應用程序包)
|-- prebuilt (x86和arm架構下預編譯的一些資源)
|-- sdk (sdk及模擬器)
|-- system (文件系統庫、應用及組件——C語言)
`-- vendor (廠商定製代碼)

bionic 目錄

|-- libc (C庫)
| |-- arch-arm (ARM架構,包含系統調用匯編實現)
| |-- arch-x86 (x86架構,包含系統調用匯編實現)
| |-- bionic (由C實現的功能,架構無關)
| |-- docs (文檔)
| |-- include (頭文件)
| |-- inet
| |-- kernel (Linux內核中的一些頭文件)
| |-- netbsd (?netbsd系統相關,具體作用不明)
| |-- private (?一些私有的頭文件)
| |-- stdio (stdio實現)
| |-- stdlib (stdlib實現)
| |-- string (string函數實現)
| |-- tools (幾個工具)
| |-- tzcode (時區相關代碼)
| |-- unistd (unistd實現)
| `-- zoneinfo (時區信息)
|-- libdl (libdl實現,dl是動態鏈接,提供訪問動態鏈接庫的功能)
|-- libm (libm數學庫的實現,)
| |-- alpha (apaha架構)
| |-- amd64 (amd64架構)
| |-- arm (arm架構)
| |-- bsdsrc (?bsd的源碼)
| |-- i386 (i386架構)
| |-- i387 (i387架構?)
| |-- ia64 (ia64架構)
| |-- include (頭文件)
| |-- man (數學函數,後綴名為.3,一些為freeBSD的庫文件)
| |-- powerpc (powerpc架構)
| |-- sparc64 (sparc64架構)
| `-- src (源代碼)
|-- libstdc++ (libstdc++ C++實現庫)
| |-- include (頭文件)
| `-- src (源碼)
|-- libthread_db (多線程程序的調試器庫)
| `-- include (頭文件)
`-- linker (動態鏈接器)
`-- arch (支持arm和x86兩種架構)

bootable 目錄

|-- bootloader (適合各種bootloader的通用代碼)
| `-- legacy (估計不能直接使用,可以參考)
| |-- arch_armv6 (V6架構,幾個簡單的匯編文件)
| |-- arch_msm7k (高通7k處理器架構的幾個基本驅動)
| |-- include (通用頭文件和高通7k架構頭文件)
| |-- libboot (啟動庫,都寫得很簡單)
| |-- libc (一些常用的c函數)
| |-- nandwrite (nandwirte函數實現)
| `-- usbloader (usbloader實現)
|-- diskinstaller (android鏡像打包器,x86可生產iso)
`-- recovery (系統恢復相關)
|-- edify (升級腳本使用的edify腳本語言)
|-- etc (init.rc恢復腳本)
|-- minui (一個簡單的UI)
|-- minzip (一個簡單的壓縮工具)
|-- mttils (mtd工具)
|-- res (資源)
| `-- images (一些圖片)
|-- tools (工具)
| `-- ota (OTA Over The Air Updates升級工具)
`-- updater (升級器)

build目錄

|-- core (核心編譯規則)
|-- history (歷史記錄)
|-- libs
| `-- host (主機端庫,有android 「cp」功能替換)
|-- target (目標機編譯對象)
| |-- board (開發)
| | |-- emulator (模擬器)
| | |-- generic (通用)
| | |-- idea6410 (自己添加的)
| | `-- sim (最簡單)
| `-- proct (開發對應的編譯規則)
| `-- security (密鑰相關)
`-- tools (編譯中主機使用的工具及腳本)
|-- acp (Android "acp" Command)
|-- apicheck (api檢查工具)
|-- applypatch (補丁工具)
|-- apriori (預鏈接工具)
|-- atree (tree工具)
|-- bin2asm (bin轉換為asm工具)
|-- check_prereq (檢查編譯時間戳工具)
|-- dexpreopt (模擬器相關工具,具體功能不明)
|-- droiddoc (?作用不明,java語言,網上有人說和JDK5有關)
|-- fs_config (This program takes a list of files and directories)
|-- fs_get_stats (獲取文件系統狀態)
|-- iself (判斷是否ELF格式)
|-- isprelinked (判斷是否prelinked)
|-- kcm (按鍵相關)
|-- lsd (List symbol dependencies)
|-- releasetools (生成鏡像的工具及腳本)
|-- rgb2565 (rgb轉換為565)
|-- signapk (apk簽名工具)
|-- soslim (strip工具)
`-- zipalign (zip archive alignment tool)

dalvik目錄 dalvik虛擬機
.
|-- dalvikvm (main.c的目錄)
|-- dexmp (dex反匯編)
|-- dexlist (List all methods in all concrete classes in a DEX file.)
|-- dexopt (預驗證與優化)
|-- docs (文檔)
|-- dvz (和zygote相關的一個命令)
|-- dx (dx工具,將多個java轉換為dex)
|-- hit (?java語言寫成)
|-- libcore (核心庫)
|-- libcore-disabled (?禁用的庫)
|-- libdex (dex的庫)
|-- libnativehelper (Support functions for Android's class libraries)
|-- tests (測試代碼)
|-- tools (工具)
`-- vm (虛擬機實現)

development 目錄 (開發者需要的一些常式及工具)
|-- apps (一些核心應用程序)
| |-- BluetoothDebug (藍牙調試程序)
| |-- CustomLocale (自定義區域設置)
| |-- Development (開發)
| |-- Fallback (和語言相關的一個程序)
| |-- FontLab (字型檔)
| |-- GestureBuilder (手勢動作)
| |-- NinePatchLab (?)
| |-- OBJViewer (OBJ查看器)
| |-- SdkSetup (SDK安裝器)
| |-- SpareParts (高級設置)
| |-- Term (遠程登錄)
| `-- launchperf (?)
|-- build (編譯腳本模板)
|-- cmds (有個monkey工具)
|-- data (配置數據)
|-- docs (文檔)
|-- host (主機端USB驅動等)
|-- ide (集成開發環境)
|-- ndk (本地開發套件——c語言開發套件)
|-- pdk (Plug Development Kit)
|-- samples (演示程序)
| |-- AliasActivity ()
| |-- ApiDemos (API演示程序)
| |-- BluetoothChat (藍牙聊天)
| |-- BrowserPlugin (瀏覽器插件)
| |-- BusinessCard (商業卡)
| |-- Compass (指南針)
| |-- ContactManager (聯系人管理器)
| |-- CubeLiveWall** (動態壁紙的一個簡單常式)
| |-- FixedGridLayout (像是布局)
| |-- GlobalTime (全球時間)
| |-- HelloActivity (Hello)
| |-- Home (Home)
| |-- JetBoy (jetBoy游戲)
| |-- LunarLander (貌似又是一個游戲)
| |-- MailSync (同步)
| |-- MultiResolution (多解析度)
| |-- MySampleRss (RSS)
| |-- NotePad (記事本)
| |-- RSSReader (RSS閱讀器)
| |-- SearchableDictionary (目錄搜索)
| |-- **JNI (JNI常式)
| |-- SkeletonApp (空殼APP)
| |-- Snake (snake程序)
| |-- SoftKeyboard (軟鍵盤)
| |-- Wiktionary (?維基)
| `-- Wiktionary**(?維基常式)
|-- scripts (腳本)
|-- sdk (sdk配置)
|-- simulator (?模擬器)
|-- testrunner (?測試用)
`-- tools (一些工具)

10. 怎麼把android的apk 應用程序打包到userdata.img鏡像當中去

有一些apk 文件比較重要的,想直接打包到系統中,開機就能使用。網上網路了一下,只有說如何把apk文件打包到system.img 裡面,應該也是類似的。試試參考是否行。 把第三方或自己開發的apk文件編譯到系統文件(system.img)中的方法: 1 (1)源碼編譯後,把apk拷貝到out\target\proct\generic\system\app中。 (2) 執行命令make snod , 把添加的spk編到system.img 中 缺點:執行make clean 後,再次make 完畢需要重新執行上面操作。 2 "方法一"的改進。 (1) 新建一個文件夾目錄,用來存放apk文件 mkdir packages/apps/Prebuilt_apps cd packages/apps/Prebuilt_apps 在Prebuilt_apps中新建make文件 vi Android.mk 並寫入 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_POST_PROCESS_COMMAND := $(shell cp -r $(LOCAL_PATH)/*.apk $(TARGET_OUT)/app/) 保存退出。 (2) 把需要編譯的apk拷貝到目錄Prebuilt_apps下,執行make ,Prebuilt_apps中的apk就會考被到out\target\proct\generic\system\app中。 (3) 執行make snod 。完成。 此方法執行make clean 後,再次make 完畢,只需要make snod即可(有時make後,out\target\proct\generic\system\app沒有需要添加的apk,此時再make一次即可,速度很快)。 ----------------------- 感謝11樓提供的關於編譯成功但無法運行問題的解決方法。 解壓apk,如其中lib(.so)文件,把 .so文件到system\lib下,再編譯。 本人在模擬器上直接加入angrybird.apk(憤怒的小鳥)編譯,編譯後無法運行。把libangrybirds.so拷貝到system\lib下,再編譯後就可以運行。 觸寶輸入法apk使用此方法也可編譯運行成功。 -------------------- 使用mkyaffs2image工具,使上面的操作更簡單! 把apk及相關文件(如.so)拷貝到system的相應路徑下,執行 mkyaffs2image -f direction/system system.img,即可生成system.img ------------------------------------------------------------ 原文地址:/thread-58113-1-1.html 俺的師弟說用 make userdataimage-nodeps 這個,這幾種方法我都試試。嘿嘿。 等下來報告結果。 暈,不行的這樣。呵呵,壓根沒更新userdata.img 執行make userdataimage-nodeps 後兩分鍾左右,終端就顯示下面的信息,生成了out/target/proct/generic/userdata.img Target userdata fs image: out/target/proct/generic/userdata.img 我馬上燒寫到我的S5PV210 試試。菜鳥啊,菜鳥中前進。 out/host/linux-x86/bin/mkyaffs2image -f out/target/proct/smdkv210/data out/target/proct/smdkv210/userdata.img ——這個就可以了,不過的確存在憤怒的小鳥打包進去不能運行的問題,有些apk 文件打包進去就能運行。看來還是一些庫的打包沒處理好。 原來是是這個android 系統被改的不成樣子,用上述命令就可以順利生成我們最新的userdata.img 了。 android系統存在問題,導致下面的命令都無效。 Android比較重要的三個img文件: make systemimage - system.img make userdataimage - userdata.img make ramdisk - ramdisk.img PS:make snod - 快速打包system.img

熱點內容
c語言中double的范圍 發布:2024-05-08 04:53:29 瀏覽:121
臟小豆伺服器怎麼加入 發布:2024-05-08 04:40:40 瀏覽:551
萬立存儲介質 發布:2024-05-08 04:33:02 瀏覽:637
ftppro特效復制方法 發布:2024-05-08 04:06:05 瀏覽:927
平板電腦編譯軟體 發布:2024-05-08 04:05:46 瀏覽:478
榮耀v6平板擴展存儲 發布:2024-05-08 03:41:12 瀏覽:423
安卓手機為什麼半年一更新 發布:2024-05-08 03:36:52 瀏覽:661
存儲設備報價 發布:2024-05-08 02:22:01 瀏覽:554
定步長的演算法 發布:2024-05-08 02:16:18 瀏覽:110
怎麼使用pe口袋伺服器 發布:2024-05-08 02:02:18 瀏覽:471