自行修改android.jar使其包含隱藏api

在開發中時常會遇到要用到android隱藏api的狀況,一般的作法是經過反射去調用,可是反射帶來性能上的影響,代碼也不夠直觀,我更偏心直接使用那些api。android

因而這就是本文的開始,本身改造一個android.jar,使其包含隱藏apiapi


其實步驟很簡單,由於android系統內帶的framework.jar已經包含了隱藏api,只需將其抽取並放到android.jar內就行了,整理一下就是:工具


1) 從指定版本的rom內獲取到framework.jar性能

2) 解壓framework.jar和android sdk內的android.jarip

3) 將framework.jar解出來的東西拷到android.jar解出來的東西內,進行覆蓋開發

4) 從新打包android-sdk

5) 用新的android.jar替換原先的變量


方便起見,寫了一個腳原本完成以上工做,其中解framework.jar用到dex2jar工具,請自行下載並配置環境變量打包


#!/bin/sh配置

DEX=$1

AJAR=$2

OUT=$3

d2j-dex2jar.sh $DEX -o framework-dex.jar

mv framework-dex.jar framework-dex.zip

unzip -d framework-dex framework-dex.zip

cp $AJAR android-sdk.zip

unzip -d android-sdk android-sdk.zip

cp -r -f framework-dex/* android-sdk/

cd android-sdk

zip -r android-new.zip *

cd ..

mv android-sdk/android-new.zip android-new.zip

mv android-new.zip android-new.jar

rm android-sdk.zip

rm framework-dex.zip

rm -fr android-sdk/

rm -fr framework-dex/

mv android-new.jar $OUT

echo "done"


使用也很簡單,將這段腳本存爲makesdk.sh並給予可執行權限,而後使用之

$ makesdk.sh framework.jar android.jar ~/Desktop/

執行完成後,便可在桌面上看到一個名爲android-new.jar的文件,這就是包含隱藏api的sdk了

相關文章
相關標籤/搜索