android22源碼
⑴ 怎麼在windows下查看android源碼
先下載源碼,最新為2.2
2.找SDK目錄
安裝的SDK到我的目錄E:\
E:\android-sdk-windows\
找到目錄 結構如下:
E:\android-sdk-windows\
-platforms
+android-3(android-1.5)
+android-4(android-1.6)
………..
+android-6(android-2.0)
+android-7(android-2.1)
+android-8(android-2.2)
最高的android-8對應的是SDK2.2。
在android-8文件中新建sources然後把下載好的源碼(android-2.2-froyo-src.zip)解壓到這個文件下。
3.改配置文件(修改紅色部分)
找到android-8目錄下的文件source.properties並將其修改如下:
### Android Tool: Source of this archive.
#Wed Oct 13 14:00:16 CST 2010
Pkg.Desc=Android SDK Platform. 2.2_r1
Pkg.UserSrc=true
Archive.Arch=ANY
Platform.Version=2.2
Pkg.DescUrl=sources
Archive.Os=WINDOWS
Pkg.SourceUrl=sources
Pkg.Revision=2
AndroidVersion.ApiLevel=8
大公告成,重啟Eclipse,按ctril+關鍵字、類名 或者按F3就可以點進去了,可以看到源碼了吧!
PS:已經下載好的源碼,可以把core目錄放入到sources中即可。。。
⑵ 安卓系統是開源的,開源是啥意思
簡單的來說 ,比如谷歌開發了安卓系統最基礎的框架了,華為等手機廠家可以利用其源代碼開發修改升級匹配自身的系統,但是因為基礎源代碼來自於安卓(所以我們的手機開機時一般都會體現 POWERED BY Android )。而且開發者對於源代碼的任何改進都必須要告知開源軟體的公司,這樣也有利於開源的公司進一步提高源代碼。在這方面華為為安卓的發展壯大做出了巨大的貢獻。
早期的時候可能困難,但是以現在華為的技術水平來說,開發一個手機操作系統根本不難,但是為什麼一直不推出自己的系統呢?這是因為系統容易,生態難。
每一種操作系統都有它的運行環境,所有你在下載APP的時候,不同的操作系統是要下載不同的APP的。一個新的操作系統進來,沒有你那個系統的APP,那麼根本沒人會使用你的手機,因為它等於以前的老人機。
舉個例子 :比如華為開發了一個系統(據傳是鴻蒙),但是微信、支付寶、網路等等這些企業都不開發適用於鴻蒙系統的APP軟體,那麼鴻蒙系統將會面臨的無軟體可下載的情況,這時候,這個系統等於廢棄的一個系統。之前微軟在意識到的手機操作系統的重要性之後,也推出了Windows Phone,不過最終也敗下陣來了,因為沒有匹配的app可以下載,所以安卓並不是強大,只是它搶佔了先機而已。
PS: 很多人會說那蘋果屬於閉源系統,這些軟體開發公司是怎麼開發APP的。簡單的來說app應用是需要調取系統的許可權完成一些特定的工作,系統閉源可以簡單理解成禁止其他開發者獲取系統的代碼,但是應用需要獲取的許可權是可以賦予的,還有編寫應用的代碼也是開放的,ios雖然不讓你看源碼,但它也提供了sdk用來調用系統資源,也提供了api介面來和系統通信調度,所以微信支付寶這些公司可以開發適用於ios的app。
華為最好的解決辦法是直接開發出可以兼容安卓APP的系統,那麼關於系統的問題就全部迎然而解了,華為的回應中也說明有能力繼續發展和使用安卓生態,所以大概率預計新系統是可以兼容的。
假設華為的系統無法兼容安卓的app,那麼需要目前所有開發APP的各家企業支持,重新開發適用於華為系統的app應用,這個難度就有點大了,國內或許還好,國際就比較困難了,畢竟別人沒有義務做這件事。
一個操作系統就像一個生態圈,一旦這個生態圈穩定,其它的系統就很難進得來,電腦等其它操作系統也是如此,所以華為的困難不在與開發操作系統,而在於其生態圈的架構,最簡單的方式就是直接兼容安卓app。
開源從字面上的理解就是開放源頭,使用者可以在源代碼的基礎上進行修改和補充,形成具有特點的定製功能,很多人認為開源就是免費的,它只是對外界開放,但必須要符合原始開發公司的要求。
其中最具代表性的開源系統就是Linux,各種應用不斷完善更新都離不開它。最大的特點是開放源代碼可以自由定製,由於用戶的技術水平有限,很多的硬體和軟體廠商並沒有提供開源的功能,這就要靠使用者在選擇操作系統時根據自己的技術水平來選擇,這也說明了很少人用開源操作系統的原因。而對於專業的開發人員來說,開源系統有很大的優勢,開發應用可以隨心所欲也沒那麼復雜,因為是開放的源代碼,可以根據自己特定的需求進行修改,這對於互聯網開發人員來說,是非常重要的幫助。
像Android的系統就是開源的,基於Linux程序開發的一個java虛擬器,然後在這個設備里運行Java。很多手機廠商在原生Android系統里添加一些定製的功能,形成獨有的系統特色,這些操作也不用谷歌授權。但有個前提,只能修改一些普通的代碼,重要的核心部分不能修改。
系統開源給了大家很多的便利,用戶也在不斷增長,對於開源的部分也是會受到一定的限制,谷歌公司可以給你空間去創新,但核心技術還是在別人手裡,只有開拓局面,掌握核心技術開發自己的操作系統才是王道。
開源,顧名思義,就是開源源代碼,但是使用者需要遵守開源規則。
安卓開源,就是說所有的廠商或者開發者都可以直接使用安卓的源代碼去開發,但是需要遵守谷歌的使用條件。
比如說,
全球所有廠商必須預裝Google全家桶(中國內地,朝鮮除外,因為谷歌已經退出該市場,服務不可用)。
而對於國內的安卓在開機時都會有一個Android的標簽,這個是在Android 4.4開始強制要求的,不然以前很多廠商改成跟自己家的系統一樣,完全不把谷歌放在眼裡。
其次是核心代碼功能不能隨意更改,必須遵守API的協議,某些廠商亂改底層導致一堆兼容性變差,谷歌被黑鍋(說得就是中國定製的Android)。
還有很多條例就不一一列舉。
但是開源必須遵守開源精神,這對作者也是一個尊重。
作為個人開發者的我,使用他人代碼依然會註明原作者信息。
歡迎在點擊右上角關註:「太平洋電腦網」,不定時放送福利哦!
開源,全稱為開放源代碼,是每個人都能看到,每個人都可以在規則之內使用,使用和開發之後需要把你的產品返回到代碼之中。
主要是為了人人為我,我為人人的精神,共同推動這個社區或者是這個系統進步。
安卓開源,那就是谷歌需要會把安卓的代碼公布公開出來,方便用戶在這個代碼的基礎上進行學習,同時也能修改,甚至可以進行商業化。
但是,你在這個基礎上開發和修改的代碼也需要公布出來,不能只索取不付出的,需要求同存異,互利共贏。
當然,這樣做的方式,是想要通過全世界的程序員的力量,把開發的工作的難度降低了,提高了程序員的工作效率,避免重復造輪子。
同時,如果你用到了別人的代碼,你需要備注代碼的作者,表示對於作者的尊重。
所以說,安卓系統是全世界的程序員的成果,因為大家在這個基礎上開發了是需要把代碼公開的,供大家使用和學習的。這也是安卓能這么快發展和進步的原因,因為這匯聚了全世界程序員的智慧。
所以,世界上沒有任何一個人能夠阻止其他人去使用安卓系統的代碼。谷歌不授權,也只不過是不能使用Google的APP,也不能使用GSM服務協議而已。當然,這個在國外影響挺大的,但是依然可以使用安卓系統的。
安卓系統開源,就是安卓系統源代碼對外開放,給你舉個例子,假如你要寫小說,小說的內容就像系統裡面的代碼,然後你發布到網上那麼其他網站就會找你合作,希望得到你的授權,那麼你同意過後才能發布,你當然希望有更多的人來看你的小說,也希望讀者能給你提提建議,那麼你肯定也會要求網站備注這個小說的作者是誰,一來防止別人修改你的小說內容,二來你可以收到讀者的建議!那麼你就會不斷的完善其小說的內容!
那麼你的小說內容對外發布,就相當於把源代碼公開,這就是系統開源,然後就是別人拿你的小說內容拍電影,它也要表明影片內容的作者及作品,這相當於把你的作品作為影片內容的框架,可能在小說的內容上修改一下,然後拍成影片發布,說到這里,是不是明白什麼是系統開。
也就是說我可以將我的系統開放給你使用,但是你只能在系統上進行創作和修改,因為這系統裡面有我的版權技術在裡面!我只是給你免費使用而已,當我不想給你使用,你必修刪除我在系統裡面的版權技術。
android (安卓)是完全開源的。
Android是一種基於Linux的自由及開放源代碼的操作系統。主要使用於移動設備,如智能手機和平板電腦,由Google(谷歌)公司和開放手機聯盟領導及開發。
尚未有統一中文名稱,中國大陸地區較多人使用「安卓」或「安致」。Android操作系統最初由Andy Rubin開發,主要支持手機。2005年8月由Google收購注資。
2007年11月,Google與84家硬體製造商、軟體開發商及電信營運商組建開放手機聯盟共同研發改良Android系統。隨後Google以Apache開源許可證的授權方式,發布了Android的源代碼。
(2)android22源碼擴展閱讀:
一、發展歷程
2003年10月,Andy Rubin等人創建Android公司,並組建Android團隊。
2005年8月17日,Google低調收購了成立僅22個月的高 科技 企業Android及其團隊。安迪魯賓成為Google公司工程部副總裁,繼續負責Android項目。
2007年11月5日,谷歌公司正式向外界展示了這款名為Android的操作系統,並且在這天谷歌宣布建立一個全球性的聯盟組織,該組織由34家手機製造商、軟體開發商、電信運營商以及晶元製造商共同組成。
並與84家硬體製造商、軟體開發商及電信營運商組成開放手持設備聯盟(Open Handset Alliance)來共同研發改良Android系統,這一聯盟將支持谷歌發布的手機操作系統以及應用軟體,Google以Apache免費開源許可證的授權方式,發布了Android的源代碼。
2008年,在GoogleI/O大會上,谷歌提出了AndroidHAL架構圖,在同年8月18號,Android獲得了美國聯邦通信委員會(FCC)的批准,在2008年9月,谷歌正式發布了Android 1.0系統,這也是Android系統最早的版本。
二、系統內核
Android 是運行於Linux kernel之上,但並不是GNU/Linux。因為在一般GNU/Linux 里支持的功能,Android 大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。
Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 為了達到商業應用,必須移除被GNU GPL授權證所約束的部份,例如Android將驅動程序移到 Userspace,使得Linux driver 與 Linux kernel徹底分開。
Bionic/Libc/Kernel/ 並非標準的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所產生的,這樣做是為了保留常數、數據結構與宏。
Android 的 Linux kernel控制包括安全(Security),存儲器管理(Memory Management),程序管理(Process Management),網路堆棧(Network Stack),驅動程序模型(Driver Model)等。下載Android源碼之前,先要安裝其構建工具 Repo來初始化源碼。Repo 是 Android 用來輔助Git工作的一個工具。
直白點就是可以改,你可以利用他轉變為自己的需要,在系統中添加自己的功能,就說一個茄子吧,你可以拿來炒拿來煮,這個茄子就是開源的,某個人把茄子炒好給你端在面前,你只能拿來吃,這盤炒好的茄子就是閉源的,像win系統所有功能都擺在哪裡你無法在系統裡面去添加功能,
意思就是隨便用,誰愛用誰用。
應該是開放源代碼!就象設計師公開了自己的工程設計圖線一樣。那樣別人就能夠拿著別人公開的這些東西進行各種仿製和在人家的基礎上做一些相應改動,從而弄成你想要要的樣子。
開源的就是開放的。不開源,就是不提供開發細節。
開源就可以讓別人掌握技術細節。不開源就不能掌握技術細節。
⑶ android源代碼idreammanager在什麼地方定義的
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 (一些工具)
⑷ android (安卓)是完全開源的嗎
android (安卓)是完全開源的。
Android是一種基於Linux的自由及開放源代碼的操作系統。主要使用於移動設備,如智能手機和平板電腦,由Google(谷歌)公司和開放手機聯盟領導及開發。
尚未有統一中文名稱,中國大陸地區較多人使用「安卓」或「安致」。Android操作系統最初由Andy Rubin開發,主要支持手機。2005年8月由Google收購注資。
2007年11月,Google與84家硬體製造商、軟體開發商及電信營運商組建開放手機聯盟共同研發改良Android系統。隨後Google以Apache開源許可證的授權方式,發布了Android的源代碼。
(4)android22源碼擴展閱讀:
一、發展歷程
2003年10月,Andy Rubin等人創建Android公司,並組建Android團隊。
2005年8月17日,Google低調收購了成立僅22個月的高科技企業Android及其團隊。安迪魯賓成為Google公司工程部副總裁,繼續負責Android項目。
2007年11月5日,谷歌公司正式向外界展示了這款名為Android的操作系統,並且在這天谷歌宣布建立一個全球性的聯盟組織,該組織由34家手機製造商、軟體開發商、電信運營商以及晶元製造商共同組成。
並與84家硬體製造商、軟體開發商及電信營運商組成開放手持設備聯盟(Open Handset Alliance)來共同研發改良Android系統,這一聯盟將支持谷歌發布的手機操作系統以及應用軟體,Google以Apache免費開源許可證的授權方式,發布了Android的源代碼。
2008年,在GoogleI/O大會上,谷歌提出了AndroidHAL架構圖,在同年8月18號,Android獲得了美國聯邦通信委員會(FCC)的批准,在2008年9月,谷歌正式發布了Android 1.0系統,這也是Android系統最早的版本。
二、系統內核
Android 是運行於Linux kernel之上,但並不是GNU/Linux。因為在一般GNU/Linux 里支持的功能,Android 大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。
Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 為了達到商業應用,必須移除被GNU GPL授權證所約束的部份,例如Android將驅動程序移到 Userspace,使得Linux driver 與 Linux kernel徹底分開。
Bionic/Libc/Kernel/ 並非標準的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所產生的,這樣做是為了保留常數、數據結構與宏。
Android 的 Linux kernel控制包括安全(Security),存儲器管理(Memory Management),程序管理(Process Management),網路堆棧(Network Stack),驅動程序模型(Driver Model)等。下載Android源碼之前,先要安裝其構建工具 Repo來初始化源碼。Repo 是 Android 用來輔助Git工作的一個工具。