這篇文章主要要介紹的就是通過導入全編譯的classes.jar包,來實現對隱藏API的使用。這種方法實現簡單,程序員編程也簡單,就像是那些隱藏的API在SDK中變得可見了壹樣。它的缺點就是兼容性問題,希望使用者引起重視,在使用時考慮清楚。
編譯Android框架源碼後,在源碼路徑下會生成out文件夾,在這個文件夾下的out"target"common"obj"JAVA_LIBRARIES"framework_intermediates"路徑下,會生成全編譯的jar庫classes.jar。妳需要做的就是將這個jar庫導入到妳的工程中。
在導入classes.jar過程中,有可能會出現兩個問題(我是使用eclipse開發環境的,所以僅對此環境會遇到的問題進行說明)。
問題壹是按導入其他jar的方式導入此jar庫,發現編譯很慢,有時甚至無法編譯成功,eclipse崩潰或者提示“java.lang.OutOfMemoryError: Java Heap Space”錯誤。這個問題,可能是由於jar太大的原因吧,網上說改eclipse.ini裏的參數,個人試了下,似乎沒有什麽作用。我的做法是在eclipse中新建自定義的library,然後將classes.jar放在library中。Android工程添加library,就像使用SDK壹樣。這樣可以很好地解決這個問題。具體如何新建自定義的library我就不詳述了,不知道的朋友自己搜索下或者摸索下,很簡單的。
問題二是已經正確導入了jar庫,卻發現還是找不到隱藏的API。這個的原因是Build class path order不對,具體說就是android.jar和classes.jar的導入順序不對。應該將classes.jar的順序放在android.jar之前,具體調節Build class path order的地方就在properties -> Java Build Path -> Order and Export.。
成功解決這兩個問題之後,相信妳就可以正常使用Android隱藏API了。