前提:我們需要得到Android系統源碼編譯輸出的一個文件
out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar
這個包里面包含所有的系統api, 隱藏的, 公開的
添加 jar方法
右鍵功能菜單->Properties->Java Build Path
Libraries選項卡
這時應該有一個列表, 如果你沒有添加過, 應該只有一項, 就是系統自帶的Android SDK, 選中后,右手邊有一個刪除, 先刪除系統添加的sdk.
點Add Library -> User Library
選擇User Library 按鈕, 新建一個User Library 將剛才那個文件 classes.jar 和系統本身的文件都導入進來, 調整下順序, 將 classes.jar 調到前面
這樣添加了之后, 就可以使用系統隱藏的api了
使用隱藏api, 有個前提:
許多api涉及到系統權限問題, 比如 后臺安裝文件 api PackageManager.installPackage 要求有安裝程序的權限, 而這個安裝程序權限不是隨便有的, 只有經ROM簽名認證的才可以使用這個權限. 雖然說可以在配置文件里面添加這個權限, 但是悲劇的是你仍然不能擁有這個權限, 在這點上, Google做的真絕..
好了, 雖然我們不能安裝, 但用api去查看apk總該可以了吧?
Google沒有公開這個Api, 但又了上面這個方法, 我們可以使用了
//apk包的文件路徑
String apkPath = "/sdcard/qq.apk";
//這是一個Package 解釋器, 是隱藏的
//構造函數的參數只有一個, apk文件的路徑
PackageParser packageParser = new PackageParser(apkPath);
//這個是與顯示有關的, 里面涉及到一些像素顯示等等, 我們使用默認的情況
DisplayMetrics metrics = new DisplayMetrics();
metrics.setToDefaults();
//這里就是解析了, 四個參數,
//源文件File,
//目的文件路徑(這個我也沒搞清楚怎么回事, 看Android安裝器源碼, 用的是源文件路徑, 但名字卻是destFileName)
//顯示, DisplayMetrics metrics
//flags, 這個真不知道是啥
PackageParser.Package mPkgInfo = packageParser.parsePackage(new File(apkPath),
apkPath, metrics, 0);
//應用程序信息包, 這個公開的, 不過有些函數, 變量沒公開
ApplicationInfo info = mPkgInfo.applicationInfo;
//Resources 是用來獲取資源的 , 而這里獲取的資源是在本程序之外的
//至于為什么這么弄, 我搞不懂.
Resources pRes = getResources();
AssetManager assmgr = new AssetManager();
assmgr.addAssetPath(apkPath);
Resources res = new Resources(assmgr, pRes.getDisplayMetrics(), pRes.getConfiguration());
CharSequence label = null;
if (info.labelRes != 0) {
try {
label = res.getText(info.labelRes);
} catch (Resources.NotFoundException e) {
}
}
if (label == null) {
label = (info.nonLocalizedLabel != null) ?
info.nonLocalizedLabel : info.packageName;
}
//這里就是讀取一個apk程序的圖標
if (info.icon != 0){
Drawable icon = res.getDrawable(info.icon);
ImageView image = (ImageView) findViewById(R.id.iv_test);
image.setVisibility(View.VISIBLE);
image.setImageDrawable(icon);
}
}
|
|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|
留言簿(6)
文章檔案(51)
搜索
最新評論

|
|