編輯:關於Android編程
Framework中的app為什麼在編譯的時候需要到源碼中編譯:
因為缺少必要的包(源碼)----在連接的時候是以class文件來連接編譯的
以Systemeui為例:
缺少這個包 <喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+0bDV0mFuZHJvaWTUtMLrtcTKsbryv8nS1NXStb3V4rj2sPyjujwvcD4KPHA+PGltZyBzcmM9"/uploadfile/Collfiles/20150310/2015031008443375.png" alt="\">
知道framework在編譯的時候會打包自己的java源文件,於是在打包的out文件中尋找打包的這個 :其實也是能夠找到的:
還有很多Permission denied(當然這是在別人權限下的查找……)
當然最後找到了
裡面的jar包:
打開jar包裡面是classes的dex文件:
但是dex文件暫時不知道怎麼打開,因此搜索到此結束。但是大致理解為:
在framework中有一些不需要作為對外接口調用的源碼包,都以dex這種直接在android系統上跑的文件格式被已經編譯過了,所以在eclipse中直接編譯的時候就缺少必要的包,這些包因為不需要對外開放,已經被打包成了更徹底的dex文件,只是保證運行,而不對外開放
/****************************/
反駁以上觀點
已經證實了,並不是被編譯成為了所謂的更徹底的dex文件,而是在sdk中標注了@hide所以在源碼編譯中是有該api而sdk中沒有。因此可以通過更換sdk 中的api來達到效果。
看組圖吧!
同樣是在尋找 這個類。當然這次完成的項目中就是:
這種情況是為何呢?
程序當然是可以跑起來的,運行也沒有問題。
具體操作步驟:(替換sdk中的android.jar包)
源碼中編譯的framework層的jar包文件
Sdk中的android.jar中的android文件(應該也基本上就是framework層的jar包)
兩個文件中源碼中的android文件夾要較於sdk中的大很多。這應該是很多源碼中的類文件,及一些jar包被屏蔽或者hide掉了。打上了hide的標簽。這樣應該基本上是可以開發lancher或者setting之類的了。
聯想旗下的控股品牌ZUK發布了新一代旗艦機ZUK Z2 Pro,那麼有網友就關心ZUK Z2 Pro有沒有NFC。NFC隨著指紋支付和APPLE PAY的盛
自從寫了上篇《chrome 源碼研究啟航篇》後,到今天已經有了近一個月的時間,這段時間做了啥呢?研究到啥程度了呢?後續節奏是否有調整呢?針對上邊疑問,下面做逐個解答:這段
今天繼續AndroidUI組件的講解(寫博客只是為了鞏固與繼續學習知識----工欲善其事,必先利其器!) 下面是主Activity的源碼,裡面附含知識點的講解,在前面的博
簡介現在在Android上加載圖片的框架都已經爛大街了,所以我們這裡也不說誰好誰壞,當然也不做比較了,因為得出的結果都是片面的,沒有誰好誰壞只有適不適合需求罷了起因是在泰