androidtab源碼
Ⅰ android中TabHost 每一個選項下綁定的都是一個ListView,實現點擊每一個選項ListView綁定不同的數據
你set不同的adapter就行了
android的源碼首先需要你從Android SDK Manager裡面下載,然後在你的sdk中才看得到。
如下圖,找到對應的source for Android sdk項,選中然後下載:
Ⅲ android怎麼在源碼導入jar包
在Android源碼編譯成功的基礎上重新編譯帶自己API的android.jar需要進行以下幾步操作:
1、添加自己源代碼,在Android源碼frameworks/base目錄下新建一個文件夾保存代碼,如tv,以包的形式命名添加的文件所在的路徑,如/tv/java/android/tv,添加的java文件開頭定義的包即是編譯成功的class文件所在的包。
2、修改makefile文件
2.1 修改build/core/pathmap.mk文件
在FRAMEWORKS_ BASE_ SUBDIRS變數後添加tv\,代碼如下(makefile文件中的語句以Tab鍵空格開頭)
FRAMEWORKS_BASE_SUBDIRS := \ $(addsuffix /java, \ core \ graphics \ location \ media \ opengl \ sax \ telephony \ wifi \ vpn \ keystore \ tv \ )
2.2 修改frameworks/base/Android.mk 文件
在packages_to_ document變數後添加自己源代碼的包名稱,如android/tv,結果如下(makefile文件中的語句以Tab鍵空格開頭)
packages_to_document := \
android \
javax/microedition/khronos android/tv 3 在ubuntu命令行終端使用如下命令進行編譯:
make clean
make update-api
make PRODUCT-sdk-sdk
最後一行也可以用如下兩個命令代替: make –j4 make sdk 4 編譯結果
4.1 android.jar文件所在的目錄為
/out/target/common/obj/PACKAGING/android_jar_intermediates/android.jar並在/out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_interme diates/src目錄下重新以package形式組織所有生成到android.jar中的源代碼。 4.2 SDK所在目錄為
out/host/linux-x86/sdk/,生成的sdk文件目錄和壓縮包為: android-sdk_eng.xxx_linux-x86
android-sdk_eng.xxx_linux-x86.zip(xxx為自己android源碼所在的文件名)
Ⅳ 如何單獨編譯安卓系統源碼指定模塊
Android源碼目錄下的build/envsetup.sh文件,描述編譯的命令
- m: Makes from the top of the tree.
- mm: Builds all of the moles in the current directory.
- mmm: Builds all of the moles in the supplied directories.
要想使用這些命令,首先需要在android源碼根目錄執行. build/envsetup.sh 腳本設置環境
m:編譯所有的模塊
mm:編譯當前目錄下的模塊,當前目錄下要有Android.mk文件
mmm:編譯指定路徑下的模塊,指定路徑下要有Android.mk文件
下面舉個例子說明,假設我要編譯android下的\hardware\libhardware_legacy\power模塊,當前目錄為源碼根目錄,方法如下:
1、. build/envsetup.sh
2、mmm hardware/libhardware_legacy/power/
編譯完後 運行 make snod
會重新將你改過的模塊打入到system.img中
Ⅳ 有研究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源碼需要多大的空間
預留100G或以上空間用於存放源碼及編譯產出,本人編譯的KitKat 源碼(帶.repo目錄)+編譯產出在80G左右
Ⅶ 怎樣查看 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開發怎樣將Tab選項卡嵌入軟體主界面
卡錯誤地方:Causedby:java.lang.NullPointerException源碼:{//選項卡privateTabHost_tabHost;//滾動圖片privateViewPagerviewPager;privateList<ImageView>imageViews;privateString[]titles;privateint[]imageResId;privateList<View>dots;privateTextViewtv_title;privateintcurrentItem=0;;privateHandlerhandler=newHandler(){publicvoidhandleMessage(android.os.Messagemsg){viewPager.setCurrentItem(currentItem);};};//0.初始化@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//主界面選項卡_tabHost=(TabHost)findViewById(android.R.id.tabhost);//_tabHost=getTabHost();AddTabPage();//設置對應圖片imageResId=newint[]{R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e};//設置對應標題titles=newString[imageResId.length];titles[0]="白日依山盡";titles[1]="黃河入海流";titles[2]="欲窮千里目";titles[3]="更上一層樓";titles[4]="路漫漫,其修遠兮,吾將上下而求索";imageViews=newArrayList<ImageView>();for(inti=0;i<imageResId.length;i++)
Ⅸ 如何用 Intellij 導入 Android 源碼
針對定製源碼或者原生源碼來說,這些准備步驟都是必須的,沒必要再強調了。
2-2 配置導入及使用
2-2-1 編譯源碼idegen模塊及生成AS配置文件(*.ipr)
在開始編譯idegen模塊前,你一定知道需要先全局編譯出out目錄及相關文件吧,這個不再過多說了,我們通過如下命令編譯idegen模塊:
mmm development/tools/idegen/1
這行命令的意思是編譯idegen這個模塊項目,然後生成idegen.jar文件(不信你自己去查看這個模塊的Android.mk的目標吧,不多解釋)。運行完以後如果看到如下信息則說明編譯OK:
......
#### make completed successfully (7 seconds) ####12
接著執行如下腳本:
development/tools/idegen/idegen.sh1
這行命令的意思是在根目錄生成對應的android.ipr、android.iml IEDA工程配置文件。等待片刻得到類似如下信息說明OK:
Read excludes: 21ms
Traversed tree: 194799ms12
通過如上操作我們就完成了基本的源碼配置工作。
2-2-2 導入Android Studio前的一些客戶化操作
大家都知道使用Eclipse倒入源碼很慢,Android Studio導入源碼時也慢,所以建議修改android.iml文件(將自己不用的代碼去掉),然後再導入Studio。
就像下面摘取的android.iml文件1887行開始的這些一樣:
<sourceFolder url="file://$MODULE_DIR$/./sdk/testapps/userLibTest/src" isTestSource="true"/>
<sourceFolder url="file://$MODULE_DIR$/./tools/external/fat32lib/src/main/java" isTestSource="false"/>
<excludeFolder url="file://$MODULE_DIR$/out/eclipse"/>
<excludeFolder url="file://$MODULE_DIR$/.repo"/>
<excludeFolder url="file://$MODULE_DIR$/external/bluetooth"/>
<excludeFolder url="file://$MODULE_DIR$/external/chromium"/>
<excludeFolder url="file://$MODULE_DIR$/external/icu4c"/>
<excludeFolder url="file://$MODULE_DIR$/external/webkit"/>
<excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs"/>
<excludeFolder url="file://$MODULE_DIR$/out/host"/>
<excludeFolder url="file://$MODULE_DIR$/out/target/common/docs"/>
<excludeFolder url="file://$MODULE_DIR$/out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates"/>
<excludeFolder url="file://$MODULE_DIR$/out/target/proct"/>
<excludeFolder url="file://$MODULE_DIR$/prebuilt"/>1234567891011121314
我們可以仿照上面這段代碼的<excludeFolder url="file://$MODULE_DIR$/.repo"/>寫法一樣過濾掉不需要的內容,這樣在導入時就會快很多。
也可以通過Android Studio的Project Stucture 打開左側Moles,然後將右側Sources中一些目錄Excluded掉。
2-2-3 使用Android Studio導入源碼工程
有了如上的這些操作以後,我們打開Android Studio,然後選擇打開一個現有的Android Studio項目,然後選擇打開源碼根目錄下的android.ipr文件,然後出現如圖一樣的索引即可等待導入就行:tu
到目前為止我們就可以方便的使用Android Studio查看源碼啦。如下圖所示:
吊不屌!!!
2-3 使用技巧
上圖我們看見了,可以通過Android Studio搜索整套源碼的代碼了。但是這時候如果你打開一個Service.java類,然後把滑鼠放在其中任意方法的Intent參數上按住CTRL+滑鼠左鍵跳轉到Intent類你會發現跳轉過去的是一個Intent.class文件,為啥呢?因為他跳轉的是你的默認SDK中的jar內部的class文件。既然要修改查看整套源碼,這么跳轉得多蛋疼啊,所以我們需要配置讓其能跳轉到Intent.java文件,具體做法如下:
首先刪掉依賴中的所有依賴,只保留下圖中沒被選中的那兩個(當然你可以選擇保留一些你用到的其他jar),如下:
接著點擊加號的JARs or directories將你源碼的frameworks及external和你用到的其他跳轉目錄添加到依賴中,然後apply即可。
這時候我們在像上面一樣打開Service.java跳轉Intent,你會發現像下圖一樣直接跳轉到你源碼路徑下的Intent.java文件了,如下:
到此對於平時只是查看源碼的人來說已經夠用了。
3 總結
俗話說工欲善其事必先利其器,你會發現使用Android Studio比Eclipse和Source Insight都好很多(當然了,SubText還是很強大的),無論是代碼提示還是跳轉、還是Python Shell等插件支持等都很強大,慢慢體驗吧。
順帶說一句,Google的野心真的很大,看來Android Studio即將要被他們打造為全能IDE了。
4 附加README
附上原版的英文README文檔,英語高手直接看這里就行:
IDEGen automatically generates Android IDE configurations for IntelliJ IDEA
and Eclipse. Your IDE should be able to compile everything in a reasonable
amount of time with no errors.
If you』re using IntelliJ…
If this is your first time using IDEGen...
IDEA needs a lot of memory. Add "-Xms748m -Xmx748m" to your VM options
in "IDEA_HOME/bin/idea.vmoptions" on Linux or
"IntelliJ IDEA.app/Contents/Info.plist" on OS X.
Create a JDK configuration named "1.6 (No Libraries)" by adding a new
JDK like you normally would and then removing all of the jar entries
under the "Classpath" tab. This will ensure that you only get access to
Android's core libraries and not those from your desktop VM.
From the project's root directory...
Repeat these steps after each sync...
1) make (to proce generated .java source)
2) development/tools/idegen/idegen.sh
3) Open android.ipr in IntelliJ. If you already have the project open,
hit the sync button in IntelliJ, and it will automatically detect the
updated configuration.
If you get unexpected compilation errors from IntelliJ, try running
"Build -> Rebuild Project". Sometimes IntelliJ gets confused after the
project changes significantly.
If you』re using Eclipse…
If this is your first time using IDEGen...
Edit eclipse.ini ("Eclipse.app/Contents/MacOS/eclipse.ini" on OS X) and
add "-Xms748m -Xmx748m" to your VM options.
Configure a JRE named "1.5 (No Libraries)" under "Preferences -> Java ->
Installed JREs". Remove all of the jar entries underneath "JRE system
libraries". Eclipse will not let you save your configuration unless at
least one jar is present, so include a random jar that won't get in the
way.
From the project's root directory...
Repeat these steps after each sync...
1) make (to proce generated .java source)
2) development/tools/idegen/idegen.sh
3) Import the project root directory into your Eclipse workspace. If you
already have the project open, simply refresh it (F5).
Excluding source roots and jars
IDEGen keeps an exclusion list in the "excluded-paths" file. This file
has one regular expression per line that matches paths (relative to the
project root) that should be excluded from the IDE configuration. We
use Java's regular expression parser (see java.util.regex.Parser).
You can create your own additional exclusion list by creating an
"excluded-paths" file in the project's root directory. For example, you
might exclude all apps except the Browser in your IDE configuration with
this regular expression: "^packages/apps/(?!Browser)".
Controlling source root ordering (Eclipse)
You may want some source roots to come before others in Eclipse. Simply
create a file named "path-precedence" in your project's root directory.
Each line in the file is a regular expression that matches a source root
path (relative to the project's root directory). If a given source root's
path matches a regular expression that comes earlier in the file, that
source root will come earlier in the generated configuration. If a source
root doesn't match any of the expressions in the file, it will come last,
so you effectively have an implicit ".*" rule at the end of the file.
For example, if you want your applications's source root to come first,
you might add an expression like "^packages/apps/MyApp/src$" to the top
of the "path-precedence" file. To make source roots under ./out come last,
add "^(?!out/)" (which matches all paths that don't start with "out/").
Ⅹ android開發怎樣將Tab選項卡嵌入軟體的主界面
有點忘記了~但是好像不是繼承Activity是TABActivity~其他的可以找找教程..