最近做了一個專案,需要實現終端無人操守自動升級,但發現android2.2中對之前的安裝類都隱藏了。無奈之下去網上找資料,經過不懈的努力終於搞定了。

首先要解決的問題是如何調用已經隱藏的API、解決辦法是:

編譯源碼後會在out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\下生成一個classes.jar的檔。把它加到專案的Library中。

具體步驟是:

1.在Eclipse中選中專案點右鍵選擇「Properties」 在快顯視窗左邊選擇JAVA Build Path, 然後選擇右邊的Libraries選項卡。

2.刪除其中的Android2.2 library,然後Add Library -> User Library  新建一個庫把剛才的classes.jar 與 android.jar再添加進來 注意先後順序,classes.jar放在前。

這時在專案中就可以引入那個隱藏的API了。前面這一步驟的作用是可以引用看到隱藏的API,在類中引用時不會報錯。

其次、經過上面的步驟後這時不要在eclipse中打包apk 會出現問題。這時把寫好的代碼拷到源碼環境中去通過mmm 命令編譯成apk.其中涉及到android.mk的編寫。

mmm命令:

$:source build/envsetup.sh

$:mmm apktest/xxx

apktest 是自己創建的目錄xxx代表專案

如果一切順利會在:out/target/product/generic/data/app下看到編譯成的apk檔。

代碼實現和android.mk編寫 我參考了這個帖子:

 

最終問題解決了。

 

創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()