多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > 綜合技術(shù) > Android從源碼框架思路開始

Android從源碼框架思路開始

來源:程序員人生   發(fā)布時間:2015-04-07 08:16:15 閱讀次數(shù):3759次

      做開發(fā)以來,總有那末1個習(xí)慣喜歡瀏覽源碼,深入了解源碼的設(shè)計意圖所在。源碼對開發(fā)人員有多么重要,想必喜歡查看

開起源碼的開發(fā)人員都明白,如:Android開發(fā)中,F(xiàn)ramework及底層開發(fā)對Android源碼的依賴就蠻高了,有很多的需求是需要自己

再源碼的基礎(chǔ)上進行修改,如:現(xiàn)在的Android智能手機,我要修改1下頂?shù)臉邮脚帕校蔷托枰螺d源碼,自己修改,然后自己刷

機重裝系統(tǒng)。從Java到Android,再到IOS都有為開發(fā)人員提供源碼這1個選項,但是問題就來了,如何獲得公司提供的源碼呢?對

于Java的源碼,只需要在網(wǎng)站上下載對應(yīng)版本的Jdk源碼資源文件,然后導(dǎo)入就能夠查看了;對IOS的源碼,可以在XCode開發(fā)工具

上下載;但是,Android的源碼相對起來是比較麻煩的,下面簡單的分析1下:

     在使用Andriod SDK進行利用程序開發(fā)的時候,我們需要對源代碼進行調(diào)試,有可能需要進入到某個Android API函數(shù)內(nèi)部進行

跟蹤調(diào)試。但是,如果目標版本的SDK沒有關(guān)聯(lián)對應(yīng)版本的源代碼的話,就會提示你找不到源代碼。

     圖:找不到Android源碼的提示

                 


     我們都知道Android系統(tǒng)是1個開源工程,在網(wǎng)上可以下載到源代碼。1般在網(wǎng)上搜索1下,就會找到各種下載源代碼的方法,比如使用Git和Repo,android源代碼下載的網(wǎng)址http://android.git.kernel.org/。關(guān)于利用Git下載android源代碼的方法,我就不再贅述了,由于網(wǎng)上的方法很多,這里給出1個參考鏈接Windows平臺下Android源碼的下載如果你跟我1樣是初學(xué)者,相信看了上面的文章,你就知道如何使用Git下載android源碼了。但是,看著http://android.git.kernel.org/ 站點下的各種目錄和文件,相信你也會跟我1樣傻眼,不知道那個目錄下的文件對應(yīng)是甚么代碼,想找到自己所需要的東西都比較難了。所以這里給大家介紹1下android源代碼的結(jié)構(gòu),如果發(fā)現(xiàn)文章有毛病的地方,還請各位童鞋輕點砸磚!

  圖:http://android.git.kernel.org/ 下紛紛復(fù)雜的文件

          

       

 認識Android源代碼結(jié)構(gòu)之前,先來再熟習(xí)1下Android的系統(tǒng)架構(gòu)吧!Android系統(tǒng)架構(gòu)被分為4層,自下而上分別是:Linux操作系統(tǒng)及驅(qū)動層、本地框架和Java運行環(huán)境、Java框架、Java利用層。每層的具體介紹在此就略過了。

  圖:Android系統(tǒng)架構(gòu) 

       

     認識Android源代碼結(jié)構(gòu)

     Android代碼的工程分為3個部份,在打開http://android.git.kernel.org/ 后看到的,就是android源代碼的根目錄。(建議:打開這個網(wǎng)站后,對比學(xué)習(xí)以下內(nèi)容)

  • 核心工程(Core Project):建立Android 系統(tǒng)的基礎(chǔ),在根目錄的各個文件夾中。
  • 擴大工程(External Project):使用其他開源項目擴大的功能,在external 文件夾中。
  • 包(Package):提供Android 的利用程序和服務(wù),在package 文件夾中。

  1、Android 的核心工程

  Android 的核心工程包括了對Android系統(tǒng)基本運行的支持,和Android系統(tǒng)的編譯系統(tǒng),工程的內(nèi)容以下表:

Android 的核心工程
工程名稱 工程描寫
bionic [Build 系統(tǒng)] C運行時支持:libc、libm、libdl、動態(tài)linker
bootloader/legacy Bootloader 參考代碼 (內(nèi)核加載器,在內(nèi)核運行之前運行)
build [Build 系統(tǒng)] Build系統(tǒng)
dalvik Dalvik虛擬機
delelopment 高層的開發(fā)和調(diào)試工具
framework/base Android 核心的框架庫
framework/policies/base 框架配置策略
hardware/libhardware 硬件抽象層庫
hardware/ril 無線接口層(Radio Interface Layer)
kernel Linux 內(nèi)核
prebuilt [預(yù)編譯內(nèi)核] 對Linux 和 Mac OS 編譯的2進制支持 
system/core 最小化可啟動的環(huán)境
system/extras 底層調(diào)試和檢查工具

  除上表列出的工程外,還有其他的工程,但大都是Android系統(tǒng)第2個層次的源代碼。

  2、Android 擴大工程

  Android 的擴大工程包括在external文件夾中,是1些經(jīng)過修改后適應(yīng)Android系統(tǒng)的開源工程。有1些工程在主機上運行,也有些在目標機上運行。由于包括的擴大工程就多,就不逐一列出,感興趣的童鞋可以自己搜集1些資料學(xué)習(xí)1下。

 

    3、Android 中的Java程序包
    Android中的Java程序包是Android系統(tǒng)架構(gòu)第4層的內(nèi)容,主要包括利用程序(Application)和內(nèi)容提供器(Content Providers)兩個部份,還有1個目錄inputmethods是輸入法的部份。
  利用程序(Application)在package/apps目錄中,主要包括:
      AlarmClock,Browser,Calculator,Calendar,Camera,Contacts,E-mail,GoogleSearch
     HTML Viewer,IM,Launcher,Mms,Music,PackageInstaller,Phone
      Settings,SoundRecorder,Stk,Sync,Updater,VoiceDialer。



內(nèi)容提供者(Content Providers)在package/providers目錄中,主要包括:

  CalendarProvider,ContactsProvider,DownloadProvider,DrmProvider

  GoogleContactsProvider,GoogleSubsribedFeedsProvidercImProvider,MediaProvider

  SettingsProvider,SubscribedFeedsProvider,TelephonyProvider。




按需下載

  如果你只需要其中的某1個或幾個文件的話,可使用以下的git命令:

  git clone git://android.git.kernel.org/工程代碼路徑  

  (例如: git clone git://android.git.kernel.org/platform/packages/providers/DrmProvider.git)

  下載的目標地址,就是當前git命令行所在確當前目錄。

  下載各個版本的Android SDK 源代碼

  給大家提供1個在Windows下下載不同版本SDK源代碼的方法,我也在網(wǎng)上找過其他的方法,但是都是Copy&Paste出來的。

  或參考另外一篇博文:使用git 工具下載android.jar Source Code

  1、下載Git,并且安裝好;

  2、新建1個文件frameworks,這個文件夾就是用來寄存你將要下載的Android SDK源代碼的目錄

  3、啟動Git bash命令行,輸入命令  git clone git://android.git.kernel.org/platform/frameworks/base.git frameworks,將會把android.git.kernel.org站點上的base文件夾下的所有文件和文件夾下載本地的frameworks文件夾中;

  4、在Git命令行環(huán)境下,使用cd命令,逐漸進入到frameworks/base文件夾中;

  5、使用 "git tag" 命令,顯示所有的Android的源代碼工程名稱;  


  

6、找到你所需要的源代碼的名稱和版本,在使用命令"git checkout android⑴.5r4"切換到摹擬器(emulator)對應(yīng)的版本;

7、將frameworks/base/core/java下的所有文件拷貝到你的SDK目錄下的"android-sdk-windowsplatformsandroid⑶sources"文件夾下。

  注意:每次切換摹擬器的版本時,git會自動從網(wǎng)站上下載對應(yīng)版本的源代碼到frameworks/base/文件夾下,再將該文件夾下的文件拷貝到對應(yīng)版本的SDK目錄下便可。


通過上面的進程,就獲得到谷歌提供的Android開起源碼了,可以查看源碼、參考Google開發(fā)者設(shè)置Android源碼的意圖了,方便自己的開發(fā)和理解。



    

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 女人18毛片a级18毛多水真多 | 国产国语一级毛片 | 国美女福利视频午夜精品 | 中文字幕巨大乳在线看 | 久久91精品国产91久 | 久久国产一级毛片一区二区 | 欧美日韩中文字幕 | 中文字幕2区 | 精品国产一区二区 | 国产欧美日韩另类一区乌克兰 | 中文字幕无线 | 国产日韩欧美亚洲综合 | 欧美一级毛片欧美大尺度一级毛片 | 九九久久久久午夜精选 | 国产欧美亚洲精品 | 一区二区三区视频 | 一级做a爰片性色毛片2021 | 亚洲欧美另类日本 | 亚洲一区二区久久 | 国产精品自拍第一页 | 欧美性video| 国产欧美一区二区精品性色 | 中文字幕一区二区三区亚洲精品 | 亚洲国产精品一区二区三区在线观看 | 一次性a爱片 | 成人免费视频一区二区三区 | 欧美天堂在线视频 | 亚州1区2区3区4区产品乱码2021 | 欧美精品日韩一区二区三区 | 69视频日本 | 日韩日韩日韩日韩日韩 | 欧美日韩一区二区三区视视频 | 内部片免费一区 | 91中文字幕yellow字幕网 | 母狗求操 | 91久久九九精品国产综合 | 国产综合久久一区二区三区 | 中文字幕第二十页 | 国产成人综合欧美精品久久 | 日欧毛片 | 欧美亚洲精品在线 |