使用AndroidFrameworks的隱藏類開發應用 or Android使用定製framework開發應用

來源:互聯網
上載者:User

Android系統作為目前開源移動作業系統的代表已經更新到了4.0.3版本,由於其開源的特性,使作業系統自身具備了最大限度的彈性,但同時也造成了版本的多樣性,市面上所出現的都是各手機廠商或者ROM製作愛好者所修改過的系統。但是如何開發Android系統framework層那,我們知道使用Eclipse+ADT就可以進行Android 應用的開發。使用手機或模擬器進行相應效果的調試。

這是標準的應用開發流程,但在為定製ROM開發定製APK時,經常面對的是使用修改過的Framework,最常見的情況是將原來在Framework中@hide的介面開發,或者加入自訂的新介面。我們知道使用這種介面在Eclipse中會直接報錯,根本不能進行編譯更不用說進行代碼的跟蹤與調試了。其實這裡可以使用相應的JAVA檔案編譯得來的.class放入Eclips lib引用庫並提高調用優先順序,就可以跨越這道屏障,進行應用的開發。順序如下:

在工程的Build Path 中,AddExternal Class Folder中選擇相應的.class檔案夾路徑,別忘了加入後,再在Order中將調用的class放在系統framework.jar之前,這樣就可以完成相關的編譯工作。並可以在手機上正常運行。但有一點需要注意,要想使用定製的Framework相關介面,需要手機系統支援。也就是相應的手機已經帶有相應的ROM才能正常調用這部分介面。而相關的.class檔案就是在進行系統源碼編譯時間相應的包(out\target\common\obj\)下中間代碼。需要根據介面原始碼位置,在相應的目錄尋找。如果不想這麼麻煩,可以直接替換整個framework代碼!,目錄為out\target\common\obj\JAVA_LIBRARIES\framework_intermediates,在下面有classes-full-debug.jar,這個就是未經壓縮的jar包了,裡面有所有的fraemwork源碼產生的.class檔案了。

1.在你需要用到的工程中:

點擊Build path,點擊Add Libraries:

選擇User Library,點擊Next:

點擊User Libraries:

點擊New:

在New User Library對話方塊中輸入一個名字,可以自己任意命名,這裡取名Myframework,勾選上:system library,點擊OK,這樣就不必去尋找相應的.class檔案,直接使用新framework介面的方法了。

1.選中Android應用的工程-右鍵-Properties-Libraries-Add Library;彈出“Add Library”對話方塊,選擇“User Libraries...”;(圖1)


圖1


2.彈出“User Libraries”對話方塊;點擊“New”,彈出“New User Library”對話方塊:建立Library的名稱(“FrameworksJar4.2.2”,library的名字可自訂),並選中“system library(add to the boot class path)”,點擊OK(圖2)


圖2


3.(圖3)在“User Libraries”對話方塊,可以看到建立的“FrameworksJar4.2.2”自訂的庫名稱;點擊“Add External JARs...”(選擇 classes-full-debug.jar,前提是已編譯Android源碼,擷取了該jar檔案);


圖3


4.圖4中可以看到,自訂的庫“FrameworksJar4.2.2”已經與classes-full-debug.jar相關聯。點擊圖4的“OK”,圖5的“Finish”;


圖4


圖5


5.可以看到Java Build Path下的“Libraries”標籤頁,多了剛才建立的“FrameworksJar4.2.2”庫(圖6)。


圖6


6.需要在Java Build Path下的“Order and Export”標籤頁下,top “FrameworkJar4.2.2”。否則,工程可能會編譯不過。

7.在Android應用的工程中也可以看到(圖7),該“FrameworksJar4.2.2”庫可以被工程使用。


圖7


注意:

1.如果直接在Java Build Path下的“Libraries”標籤頁,選擇“Add External Jar...”,並添加“classes-full-debug.jar”。在調試工程的時候,可能會出現卡死,彈出 “Java Heap Space”的錯誤。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.