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

android系統源代碼

發布時間: 2022-08-09 06:53:12

Ⅰ 沒有android內核的系統源代碼應該怎麼利用

1. 獲取源代碼
在cd ~/myandroid/kernel中執行以下命令
git clone git://android.git.kernel.org/kernel/common.git
這需要不少的時間,因為它會把整個linux Kernel的代碼復制下來。

然後進入到common目錄,然後用下面的命令來取得goldfish分支:
git checkout origin/android-goldfish-2.6.27 -b goldfish
這樣我們就在本地建立了一個名為goldfish的android-goldfish-2.6.27分支,代碼則已經與android-goldgish-2.6.27同步。
可以通過git branch來列出本地的所有分支。

2. 在Host OS上准備編譯環境
盡管很多人安裝完Ubuntu後第一件事情就是裝上build-essential,不過我在這里還是要提醒一下大家,另外做menuconfig的時候ncurses-devel庫也是必須的。運行以下命令,一次搞定:
sudo apt-get install build-essential ncurses-dev

3. 准備交叉編譯工具鏈
Android代碼樹中有一個prebuilt項目,包含了我們編譯內核所需的交叉編譯工具。如果你拿了完整的Android platform 的代碼樹,它就會在prebuilt目錄下。如果沒有拿完整的代碼樹也沒有關系,只要用Git clone一個或者到從GitWeb下載一個prebuilt項目 ,如果是從GitWeb下載的話記得解壓縮就行。

4. 設定環境變數
把prebuilt中的arm-eabi編譯器加入$PATH
$export PATH=$PATH:/myandroid/androidsrc/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin

設定目標arch為arm
$export ARCH=arm

打開kernel目錄下的Makefile文件,把CROSS_COMPILE指向剛才下載的prebuilt中的arm-eabi編譯器
CROSS_COMPILE ?= arm-eabi-

LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,/
$(call ld-option, -Wl$(comma)–build-id,))
這一行注釋掉,並且添加一個空的LDFLAGS_BUILD_ID定義,如下:
LDFLAGS_BUILD_ID =
下面的這段解釋來自陳罡的blog
把它注釋掉的原因是目前android的內核還不支持這個選項。–build-id選項,主要是用於在生成的elf可執行文件中加入一個內置的id,這樣在core mp,或者debuginfo的時候就可以很快定位這個模塊是哪次build的時候弄出來的。這樣就可以避免,每次都把整個文件做一遍效驗,然後才能得到該文件的是由哪次build產生的。對於內核開發者來說,這是很不錯的想法,可以節約定位模塊版本和其影響的時間。目前,該功能還出於early stage的狀態,未來的android或許會支持,但至少目前的版本是不支持的。
對這個–build-id選項感興趣的朋友,可以訪問下面的網址,它的作者已經解釋得非常明白了:
http://fedoraproject.org/wiki/Releases/FeatureBuildId
5、從SDK中獲得內核配置文件
大家都知道,內核編譯中有一步make menuconfig,用於配置kernel。這里我們可以先獲取官方的配置,如果必要的話再作改動。先啟動模擬器 emulator -avd xxxx ,然後通過adb pull命令(該命令用於從設備上復制文件到本地)即可完成。
$adb pull /proc/config.gz ~/
現在我們用gunzip把config.gz解開,把得到的config文件移動到kernel source所在的目錄,然後重命名為.config即可。
$ gunzip config.gz
$ mv config ~/sources/goldfish-kernel/.config

6、開始編譯
因為我們之前已經把SDK中.config復制到了kernel目錄下,如果需要修改配置,可以使用
make menuconfig
修改並保存配置,如果沒有特殊需要的話就可以直接用
make
命令來編譯內核了

7、測試生成的zImage
編譯內核的過程應該很順利,因為默認的配置對內核作了大幅的精簡,大約5~6分鍾就可以編譯完成了,會在最終會在arch/arm/boot目錄下面生成一個zImage,這個就是我們所要的運行在模擬器上的內核映像了。
下面我們就在模擬器中測試一下我們所生成的zImage。
emulator avd xxx -kernel ./zImage
其中xxx是AVD名稱 ,如果想輸出kernel log,請加上-show-kernel參數。

關於為實際設備編譯kernel
如果要為一個實際的設備比如說G1重新編譯內核映像,步驟和上述為一個運行在模擬器上的內核映像步驟基本一致,只是所需要的源代碼應當來自主線而不是goldfish分支。另外,編譯完成以後載入映像的方式也不同,需要通過USB將映像燒入nand flash。

安卓系統源代碼是不是特別多特別復雜

Android系統是免費的。
Android是一種基於Linux的自由及開放源代碼的操作系統,主要使用於移動設備,如智能手機和平板電腦,由Google公司和開放手機聯盟領導及開發。尚未有統一中文名稱,中國大陸地區較多人使用「安卓」或「安致」。Android操作系統最初由Andy Rubin開發,主要支持手機。

Ⅲ android系統源碼有多少行

大概有10G的源代碼,一Byte一個字元,也就是說有超過100億個字元,每行按標准80字元來算的話,超過1億行。開放的WinXP系統有2億行,從數量級上來看的話,應該差不多。Android 4.4,是由Google公司製作和研發的代號為KitKat的手機操作系統,於北京時間2013年9月4日凌晨對外公布了該Android新版本的名稱,為Android 4.4(代號 KitKat 奇巧)。據悉,該代號來自雀巢的KitKat巧克力。"Kit Kat"原本是雀巢公司的一款巧克力名稱。谷歌表示,他們非常感謝雀巢授權使用該名稱,但使用的時候會將中間的空格去掉。Android 4.4 KitKat針對RAM佔用進行了優化,甚至可以在一些僅有512MB RAM的老款手機上流暢運行。它也進一步優化了系統在低配硬體上的運行效果, 支持內核同頁合並 KSM,zRAM 交換,似乎是為了更好地在眾多智能穿戴設備上運行。
是指sdk的源碼,還是android操作系統的源碼,不過都有10G左右,另外sdk的源碼是用git管理的,一次下載後,用git check就可以切換到各個版本。Android SDK是用於開發Android上java應用程序的,另外發布Android NDK,可以添加一些C語言寫的鏈接庫,至於Linux代碼,可以在Android源代碼中找到(SDK程序中只有編譯好的測試映像)。應用程序開發用不到Linux代碼(搞嵌入式開發才會用到,而SDK不負責底層開發)。

Ⅳ 安卓源代碼究竟是什麼有什麼作用

源代碼是Google公司發布的最純凈的安卓系統代碼,然後再由各大手機開發公司自行優化開發。簡單的說就是原料,未經加工過的。望採納!!

Ⅳ 安卓系統是開源的,所謂的開源是什麼意思呢

開源意味著Android系統的源代碼對用戶開放,可以根據開源協議(GNU)使用、編譯和重新發布。任何人都可以在GNU的控制下自由使用該軟體。

安卓系統開源有什麼好處?

顯然,用戶快速增加開源的市場份額是明智的選擇。Android可能會在全球智能手機市場占據最大的市場份額,這與它的開源直接相關。開放Android手機操作系統的源代碼不僅允許Android開發者在統一的開放平台上開發程序,同時也解決了當今市場上不同智能手機之間因文件格式不同而導致的信息交換不方便和無法移植程序內容的問題;Android的開源意味著手機用戶不再需要被動接受手機製造商的默認設置和環境。用戶可以根據自己的需求和想法定製手機的配置。

Ⅵ 現在到哪獲取android系統源代碼

Android系統源碼都在http://android.git.kernel.org/網址下,其中那個系統app都在platform/packages/apps結構下。
在剛才的Git的shell命名行窗口中輸入下面的命名:
git clone git://android.git.kernel.org/platform/packages/apps/Luancher2.git
你就可以在你的msysGit安裝目錄的git下(~\msysgit\msysgit\git)看到Luancher工程文件夾了。

然後打開~\msysgit\msysgit\git\Luancher2文件夾,就可以看到Android的Luancher系統源碼工程了。

對於其他的app系統源碼的獲取方法和上述的Luancher相同,只是命名行後的參數不同。
git clone git://android.git.kernel.org/需下載源碼的app所在的位置。

Ⅶ android源碼 android系統源碼 到底有什麼區別

sdk只是開發工具包,這個就是我們用到的api的源碼。但是,這個sdk源碼為何能跑得起來?它也是依賴完整的android系統的。android系統源碼是基於linux內核上的一套解決方案,針對ARM平台的做的各種適合嵌入式設備的一套代碼。舉個例子,你如果在windows上編程,用到它的系統api,這些api存在於一些dll中,這個dll就是你的開發所需的東東,類似android sdk,而這個dll之所以能跑起來,完全也是依賴windows系統的,windows系統源碼有幾千萬行代碼,android系統源碼也不會少。

Ⅷ 怎樣評價羅升陽的android系統源代碼分析

我幹了3年Android sdk開發,覺得到了瓶勁沒法更進一步,於是花了一年多點時間,大概摸到點門徑。根據前輩的經驗,Android底層完全入門需要兩年。 先說下我的入門過程: 第零步,下載源碼,我下的4.2的,框架層源碼10G,內核2G多,ctags給框架層建的標簽文件都有600M,當時讓我有點震撼,用的vim+ctags+cscope來閱讀,還算不錯,架構挺清晰的。 第一步,我找到了一本好書《Android的設計與實現 第一卷》它講了Android框架層的啟動,初始化,服務框架初始化,Binder,消息循環,PackageManagerService,ActivityManagerService。據作者說後面會出講UI子系統的第二卷,拭目以待。其實這本書看了幾十頁我就發現需要第二步的知識,否則看不下去,於是跳去第二步。 第二步,學習Linux系統編程,在看《Android的設計與實現》的時候我發現,框架層的Native部分,全是Linux編程。為了掌握這部分知識,我花了4個月學習了《Linux系統編程手冊》(TLPI)這本1000多頁的書,我以前是搞WIndows文件系統這塊的,所以C語言還比較熟,TLPI的習題很有意思,量也比較大,堅持下來還是收獲很多。 第三步,花了4個月學習了一些Linux內核的知識,看了LKD,PLKA看了一半多。越學越沒底,覺得不懂得越來越多,不過這個也正常,只有靠慢慢磨,估計以後要不斷的磨這塊。 第四步,回頭看Android源碼,這次一口氣看完了《Android的設計與實現 第一卷》,終於對框架層有了譜。同時真的數次把我看暈,前面看Linux內核源碼都沒這么暈,不斷在Java層和Native層之間跳有點磨腦漿。其中我又覺得Java的基礎沒有打太牢,回去補了一個月的《Core Java》第八版。但是這書沒有涉及UI子系統,於是又看了《Android內核剖析》 第五步,《Android內核剖析》(這本書實際上是講框架層的,作者也是個搞嵌入式的,所以他在寫框架層的時候文筆不太好,很羅嗦,不過還是有很多看點,到他後來寫做ROM,玩開發板時估計是說到了他的本行,一下子遛起來了看得出還是挺有水平的,這本書知識有點舊畢竟講的是2.3很多代碼已經過時,但是作者很多點子很有參考價值)這本書講UI子系統和按鍵/觸摸消息處理系統還是很有分量的,尤其13章View繪制那裡,結合源碼研究很有收獲。而後面他講編譯框架和ROM相關的東西都是挺寶貴的資料。 第六步,為了再補一下其他諸如電源管理模塊等子系統的知識看了,《深入理解android》系列,個人認為這個系列看起來有點不太舒服,不過作為補充印證還是比較有價值。 第七步,《Android系統源代碼情景分析》,羅升陽的源碼分析大作,比《Android的設計與實現》分析得更細致,但缺點是涉及到模塊比較少,選用的源碼也比《Android的設計與實現》更舊一點。看完書後需要去研究作者的博客,東西挺多的,一定讓你滿意。 第八步,買塊開發板自己玩。這步我還沒走到,原因是我覺得我還差點准備知識。可能要再幾個月,到時准備入塊6410或者樹莓派。 最後,由於我11年以前都是搞Windows這塊的,所以對Linux知識不是很了解,不得已看了這么些書,如果是一直做Linux的人,很多步驟估計可以省掉了。直接上源碼才是正道。 我本身做著移動GIS開發的工作,學框架層全是因為興趣,但招聘平台Android框架層開發人員還是蠻有競爭力的有不少定製ROM,智能電視的工作都處於人才難求狀態,畢竟有一定的門檻,現在各種ios培訓,讓奔著錢干開發的人紛紛湧入,而ios只能幹sdk開發的缺點就暴露出來了,一堆新手老手,菜鳥大牛全擠在SDK開發這塊,我覺得不太妙。 反觀Android這邊,雖然入門菜鳥沒有搞ios來錢,但是可持續性很好,從sdk-》框架》驅動》內核這樣幹下去。干著干著發現自己漸漸變成了Linux開發者/嵌入式開發者的人也不少,新人,老手,菜鳥大牛各居其位,層次性很好。 轉載

Ⅸ 怎樣查看 Android APP源代碼

將apk文件拷貝至sdcard上。
命令順序如下:

進入Android sdk文件夾/tools目錄下
輸入adb shell
輸入su
輸入cd data
輸入cd app
這時就可以看到你安裝的所有的apk文件。輸入cp 空格 對應的apk 空格 /sdcard/
這樣就將apk文件拷貝出來了。
將apk文件後綴直接變成rar格式,可以看到熟悉的目錄結構了,

其中xml文件打開後都是二進制的,無法查看。
這時就用到了一個android4me的AXMLPrinter2工具。(請自行網路搜索)
輸入以下命令,將xml文件解析出來
java -jar AXMLPrinter2.jar showtimes_list.xml
此命令是在命令行中查看此showtimes_list.xml
將showtimes_list.xml生成xml文件,則輸入以下命令:
java -jar AXMLPrinter2.jar showtimes_list.xml > h.xml
目前進行到這一步,只能看到xml文件的內容,其工程中的java源文件還是看不到,看目錄結構下有一個classes.dex文件,我們需要將dex文件變為jar文件。
這里用到了另一個工具dex2jar。(自行搜索下載)
在Windows下解壓之後的目錄如下圖所示:

在命令行中,進入到此目錄下:
在Windows下,輸入以下命令:
dex2jar.bat c:classes.dex
運行完之後,在C盤會多一個classes.dex.dex2jar.jar文件,此文件就是我們需要的jar文件。
利用jd-gui,將jar文件反向工程為java代碼。(請自行搜索下載)
它分為Windows、Linux、和max三個版本,這里我下載的是Windows版本的。
解壓之後,雙擊運行exe文件,選擇classes.dex.dex2jar.jar文件,相應的jar文件中的Java文件就被反向工程顯示出來了!

Ⅹ 誰有Android系統的源碼

1、通過 ubuntu 軟體中心安裝 wine;
2、通過 ubuntu 軟體中心安裝 winetricks;
3、通過 winetricks 在 shell中輸入: winetricks mfc42

1、通過 wine windows 的方式啟動代理伺服器
2、設置瀏覽器代理伺服器
3、設置shell代理伺服器:
在shell中輸入 sudo gedit /etc/bash.bashrc
在文件 /etc/bash.bashrc 中添加:如下內容
export http_proxy=http://127.0.0.1:8580/export https_proxy=http://127.0.0.1:8580/

通過shell安裝如下的組件:
1、sudo apt-get install bison g++-multilib git gperf libxml2-utils
2、新建一個存放源碼的目錄,如:mkdir ~/andorid/source
3、在源碼目錄中輸入命令:repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
其中: android-4.0.1_r1是android源碼的版本,更多的版本可以通過下面的方式查詢:http://source.android.com/source/build-numbers.html

4、修改source/.repo/manifest/default.xml 文件中的 fetch 的值為:
git://Android.git.linaro.org/

通過如下的指令來設置郵箱和用戶名
git config --global user.name "<your name>" ----修改用戶名git config --global user.email "<your email>" ----修改email

5、在source目錄下輸入指令:repo sync
便開始了代碼的下載

熱點內容
怎麼用紙做豌豆解壓玩具 發布:2022-09-29 04:39:17 瀏覽:731
雲存儲播放時間表 發布:2022-09-29 03:58:31 瀏覽:598
新英朗4缸買哪個配置劃算 發布:2022-09-29 03:51:54 瀏覽:122
紅旗5配置怎麼選 發布:2022-09-29 03:44:21 瀏覽:887
linux安裝maven 發布:2022-09-29 03:29:18 瀏覽:595
吉利星瑞豪華天窗版有什麼功能配置 發布:2022-09-29 03:20:28 瀏覽:822
伺服器固定ip和彈性ip一起用 發布:2022-09-29 02:40:49 瀏覽:509
gpioc語言 發布:2022-09-29 02:34:40 瀏覽:958
h乚c語言 發布:2022-09-29 02:34:39 瀏覽:410
迷你世界體驗服正式服密碼是多少 發布:2022-09-29 02:21:19 瀏覽:419