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

來源:互聯網
上載者:User

標籤:des   android   使用   ar   檔案   c   on   代碼   r   

在開發中時常會遇到要用到android隱藏api的情況,通常的做法是通過反射去調用,但是反射帶來效能上的影響,代碼也不夠直觀,我更偏愛直接使用那些api。

於是這就是本文的開始,自己改造一個android.jar,使其包含隱藏api


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


1) 從指定版本的rom內擷取到framework.jar

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

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

4) 重新打包

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了


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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.