真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android的源碼,android源碼網(wǎng)

如何查看Android源碼

當(dāng)我們在eclipse中開發(fā)android程序的時(shí)候,往往需要看源代碼(可能是出于好奇,可能是讀源碼習(xí)慣),那么如何查看Android源代碼呢?

成都創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、黎平網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為黎平等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

比如下面這種情況

假設(shè)我們想?yún)⒖碅ctivity類的源代碼,按著Ctrl鍵,左擊它,現(xiàn)實(shí)的結(jié)果卻看不到代碼的,提示的信息便是“找不到Activity.class文件”。

此時(shí)點(diǎn)擊下面的按鈕,“Change Attached Source…”,選擇android源代碼所在位置,便彈出圖三的對話框。

第一種是選擇工作目錄,即已經(jīng)存在的android應(yīng)用程序源代碼。

第二種分兩種方式

(1)選擇External File…按鈕,添加Jar格式文件或者zip格式文件路徑;

(2)選擇External Floder…按鈕,添加文件夾所在路徑。

下面問題就來了,源代碼在哪里?不能憑空產(chǎn)生阿。

可以通過Android SDK Manager進(jìn)行源代碼下載;(推薦該種方法),如圖四

勾選Source for Android SDK,進(jìn)行下載即可。

此外也可通過其他途徑下載,網(wǎng)上有很多共享的資源。

這里選擇第二種方式的(2)方法,選擇源碼所在目錄(即圖四下載源代碼目錄所在路徑),如圖五

點(diǎn)擊“OK”按鈕,此時(shí),Activity文件便能夠查看源代碼了,如圖六。

這樣就大功告成了?。?!

如何獲取android源代碼

當(dāng)前的Android?代碼托管在兩個(gè)方:? 和??之前在 android.git.kernel.org?上也有托管,不過現(xiàn)在重定向到了??好在都支持git訪問。

google?提供的?repo?工具實(shí)際上是一個(gè)內(nèi)部操作git工具來簡化操作Android源碼的Python腳本。經(jīng)過嘗試,直接使用git?工具在ubuntu?下可以實(shí)現(xiàn)clone?Android?源碼。下面介紹一下方法:

1.?獲取當(dāng)前的在github?上托管的Android?git?repositories:

github頁面為:??。不過這個(gè)頁面不支持通過?wget?""?或者?curl?""?的方式訪問,?錯(cuò)誤信息如下:

這樣一來,獲取這個(gè)頁面內(nèi)容并解析出其中的git?repositories就需要手工完成了。好在方法也很簡單:?瀏覽器中打開這個(gè)頁面,然后"查看源文件"并保存為文本文件,比如保存為"android_git.html"。最后,通過下面的一行腳本來取出?Android?git?repositories.

grep?-o?"span?class=\"repo\".*/span"?./android_git.html?|?cut?-d?""?-f2?|?cut?-d?""?-f1??android_git.txt

2.?基于第1步獲取的Android?git?repositories?來生成clone?git的腳本:

執(zhí)行如下的一行awk腳本

awk?'BEGIN{i=1;?print?"#!/usr/bin/env?bash"?}{?print?"\n\necho?\"begin?clone?android?git?["i"]:?"?$1?"\"";?print?"git?clone?

"?$1?".git";?print?"echo?\"finish?clone?android?git?["i"]:?"?$1?"\""?;?i=i+1;?}'?./android_git.txt??

git_clone_android.sh

現(xiàn)在用于clone?android?git的腳本生成好了,一共有?103?個(gè)?git?repository.

3.?執(zhí)行g(shù)it_clone_android.sh這個(gè)腳本即可。

整體Android?源碼的代碼量是相當(dāng)龐大,完成所有的clone?任務(wù)后,大概占用了?7G?磁盤空間,歷時(shí)20多個(gè)小時(shí),這是在網(wǎng)速比較快的情況下達(dá)到的效果:

其間也有許多問題,比如多次出現(xiàn)如下的錯(cuò)誤:

這個(gè)時(shí)候需能做的只能是"try?again"了。

需要說明的是"不要試圖同時(shí)并發(fā)執(zhí)行多個(gè)git?clone?命令",這樣會導(dǎo)致大量出現(xiàn)上面貼圖中的錯(cuò)誤,另外,整個(gè)clone過程中耗時(shí)最多的git?repository?如下:

kernel_common.git?kernel_msm.git?platform_frameworks_base.git?platform_prebuilt.git?其中?platform_prebuilt.git?是google?提供的預(yù)編譯好的二進(jìn)制文件,包含:?各種庫文件,jar?包,可執(zhí)行程序等等,如果只是閱讀Android?源代碼,這個(gè)git?repository?可以不用clone.

android怎么修改源碼

在Android界面的系統(tǒng)status bar上添加home,back,menu三個(gè)菜單,并完成對應(yīng)的系統(tǒng)功能。并有higlight效果,修改status bar 高度和status bar上的文字尺寸。

這需要修改android sdk才能完成,我用的是eclair.下面就我的操作進(jìn)行敘述。

1.首先完成界面顯示效果。

需要修改文件

./frameworks/base/services/java/com/android/server/status/StatusBarPolicy.java,仿照mBatteryIcon等icon的添加方式添加自定義的icon,圖片名稱指定就好了。另外還要記得修改./frameworks/base/core/res/res/values/arrays.xml,這里定義了icon的slot,并且決定了icon的擺放順序。

這樣,你需要的icon按鍵就可以顯示在系統(tǒng)的status bar上面了。

2.判斷touch event是否按動(dòng)了某個(gè)icon

需要修改的文件

./frameworks/base/services/java/com/android/server/status/StatusBarView.java

首先在onTouchEvent函數(shù)中,獲取當(dāng)前event的坐標(biāo),然后比較是否在某個(gè)按鍵范圍之內(nèi)。由于系統(tǒng)對于statusBar的范圍已經(jīng)有了定義,所以這里只需要比較橫坐標(biāo)就可以了。

其次,也是這一步最關(guān)鍵的,怎么獲取具體某一個(gè)icon的左右邊界坐標(biāo)呢?系統(tǒng)的status bar左邊顯示的圖標(biāo)都是notification, 右邊顯示的是系統(tǒng)icon. 也就是說左邊icon屬于mNotificationIcons,右邊的icon屬于mStatusIcons. 在文件StatusBarView.java中出現(xiàn)的offset = getViewOffset(mStatusIcons),得到mStatusIcons的最左邊的icon的left橫坐標(biāo)。用N = mStatusIcons.getChildCount()得到共有幾個(gè)系統(tǒng)icon,其中包含visibility為false的icons.用mStatusIcons.getChildAt(N-i)得到的是從右邊數(shù)第i個(gè)的icon view. 這個(gè)view的getLeft()+offset就是這第i個(gè)icon的左邊橫坐標(biāo),對應(yīng)的getRight()+offset就是這第i個(gè)icon的右邊橫坐標(biāo)。本例中home鍵是右邊第2個(gè)icon.

3.定義icon響應(yīng)事件

這里使用的方法是在StatusBarView.java中向

./frameworks/base/services/java/com/android/server/status/StatusBarPolicy.java發(fā)送一個(gè)Broadcast,讓StatusBarPolicy來完成具體的事件操作。這里需要注意的是不僅要在./frameworks/base/core/java/android/content/Intent.java中定義intent,還要在StatusBarPolicy的構(gòu)造函數(shù)中添加該intent的過濾動(dòng)作,即filter.addAction(Intent.ACTION_BACKICON_CHANGED).例如,按動(dòng)了back鍵,如果當(dāng)前事件為action_up,就向系統(tǒng)發(fā)送一個(gè)keyEvent,keyCode為KeyEvent.KEYCODE_BACK. 這里借用的是./frameworks/base/cmds/input/src/com/android/commands/input/Input.java中的sendKeyEvent函數(shù),直接拷貝過來,按照需要稍微修改一下形參就可以了,過程不要修改。

需要說明的是,當(dāng)點(diǎn)擊statusBar可以拉出來一個(gè)notification列表,當(dāng)這個(gè)列表顯示出來的時(shí)候,這三個(gè)back, menu, home鍵的響應(yīng)速度會非常慢,所以這時(shí)不響應(yīng)事件并隱藏這三個(gè)鍵。具體做法是在StatusBarView的onTouchEvent()中判斷mService.mExpanded或者 mService.mTracking為真時(shí)就不做響應(yīng)。mService是StatusBarService對象。隱藏三個(gè)鍵也是用Broadcast來做的,但這個(gè)intent是由StatusBarServie發(fā)出來的,當(dāng)mExpandedVisible = false時(shí)顯示,當(dāng)mExpandedVisible = true時(shí)隱藏。

這里還同時(shí)完成了highlight換圖的動(dòng)作,也是用Broadcast來做得,處理過程一樣,就是需要區(qū)分action_down和action_up就可以了。

4.調(diào)整status bar的高度

如果你需要顯示較大的屏幕尺寸,同時(shí)statusBar的高度要拉大,上面的icon的size也需要調(diào)大。為了協(xié)調(diào)一致,顯示時(shí)間的字體和notification顯示的日期的字體也需要調(diào)大。具體做法如下:

a.調(diào)節(jié)status bar icon的size: 只調(diào)節(jié)status_bar.xml的textSize標(biāo)簽似乎不起作用,同時(shí)又修改了./base/services/java/com/android/server/status/StatusBarIcon.java的t.setTextSize(32);語句才成功。不知道修改status_bar.xml的com.android.server.status.AnimatedImageView標(biāo)簽下的layout_height值是不是必須的,反正我是一起都給改了。

b.調(diào)節(jié)status bar height: ./base/core/res/res/values/dimens.xml 找得我好辛苦!不知道還需不需要修改./base/core/res/res/values/themes.xml中的Window attributes的windowTitleSize值,反正我也給改了。

c.調(diào)節(jié)notification顯示日期字體的大小,修改status_bar.xml的com.android.server.status.DateView的textSize值。

到這里,就完成了所有工作,看看效果吧。

怎樣查看 Android APP 源代碼

用壓縮軟件打開apk文件,解壓出根目錄中的classes.dex文件

使用cmd ,dex2jar.bat classes.dex命令將classes.dex轉(zhuǎn)換為jar

再用jd-gui打開該jar就可以查看源碼了,如果apk安全性好的話,有些代碼是看不到的

怎樣查看 Android APP源代碼?

將apk文件拷貝至sdcard上。

命令順序如下:

進(jìn)入Android sdk文件夾/tools目錄下

輸入adb shell

輸入su

輸入cd data

輸入cd app

這時(shí)就可以看到你安裝的所有的apk文件。輸入cp 空格 對應(yīng)的apk 空格 /sdcard/

這樣就將apk文件拷貝出來了。

將apk文件后綴直接變成rar格式,可以看到熟悉的目錄結(jié)構(gòu)了,

其中xml文件打開后都是二進(jìn)制的,無法查看。

這時(shí)就用到了一個(gè)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

目前進(jìn)行到這一步,只能看到xml文件的內(nèi)容,其工程中的java源文件還是看不到,看目錄結(jié)構(gòu)下有一個(gè)classes.dex文件,我們需要將dex文件變?yōu)閖ar文件。

這里用到了另一個(gè)工具dex2jar。(自行搜索下載)

在Windows下解壓之后的目錄如下圖所示:

在命令行中,進(jìn)入到此目錄下:

在Windows下,輸入以下命令:

dex2jar.bat c:\classes.dex

運(yùn)行完之后,在C盤會多一個(gè)classes.dex.dex2jar.jar文件,此文件就是我們需要的jar文件。

利用jd-gui,將jar文件反向工程為java代碼。(請自行搜索下載)

它分為Windows、Linux、和max三個(gè)版本,這里我下載的是Windows版本的。

解壓之后,雙擊運(yùn)行exe文件,選擇classes.dex.dex2jar.jar文件,相應(yīng)的jar文件中的Java文件就被反向工程顯示出來了!

Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機(jī)。2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運(yùn)商組建開放手機(jī)聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開源許可證的授權(quán)方式,發(fā)布了Android的源代碼。第一部Android智能手機(jī)發(fā)布于2008年10月。Android逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。2011年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。 2013年的第四季度,Android平臺手機(jī)的全球市場份額已經(jīng)達(dá)到78.1%。?[1]??2013年09月24日谷歌開發(fā)的操作系統(tǒng)Android在迎來了5歲生日,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達(dá)到10億臺。

Android一詞最早出現(xiàn)于法國作家利爾亞當(dāng)(Auguste Villiers de l'Isle-Adam)在1886年發(fā)表的科幻小說《未來夏娃》(L'ève future)中。他將外表像人的機(jī)器起名為Android。

Android的Logo是由Ascender公司設(shè)計(jì)的,誕生于2010年,其設(shè)計(jì)靈感源于男女廁所門上的圖形符號, [1]? 于是布洛克繪制了一個(gè)簡單的機(jī)器人,它的軀干就像錫罐的形狀,頭上還有兩根天線,Android小機(jī)器人便誕生了。其中的文字使用了Ascender公司專門制作的稱之為“Droid ” 的字體。Android是一個(gè)全身綠色的機(jī)器人,綠色也是Android的標(biāo)志。顏色采用了PMS 376C和RGB中十六進(jìn)制的#A4C639來繪制,這是Android操作系統(tǒng)的品牌象徵。有時(shí)候,它們還會使用純文字的Logo。


網(wǎng)頁題目:android的源碼,android源碼網(wǎng)
網(wǎng)頁路徑:http://weahome.cn/article/dsgodoj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部