Manifest Explorer
来源:互联网 发布:python 设计模式的书 编辑:程序博客网 时间:2024/05/12 15:09
看名字就知道是解析apk里面的manifest的。
protected String[] getPackages() {
ArrayList<String> res = newArrayList<String>();
List<PackageInfo> l =getPackageManager().getInstalledPackages(
PackageManager.GET_DISABLED_COMPONENTS);
for (PackageInfo pi : l)
res.add(pi.packageName);
Collections.sort(res);
return res.toArray(new String[res.size()]);
}
protected booleanconfigForPackage(String packageName) {
if (packageName == null ||packageName == "")
packageName ="android";
AssetManager initAM = mCurAm;
Resources initRes =mCurResources;
try {
mCurAm = createPackageContext(packageName,0).getAssets();
mCurResources = newResources(mCurAm, getResources()
.getDisplayMetrics(),null);
} catch(NameNotFoundException name) {
Toast.makeText(this,"Error, couldn't create package context: "
+ name.getLocalizedMessage(),Toast.LENGTH_LONG);
mCurAm = initAM;
mCurResources = initRes;
return false;
} catch (RuntimeExceptionunexpected) {
Log.e(MANIFEST_TAG,"error configuring for package: " + packageName
+ "" + unexpected.getMessage());
mCurAm = initAM;
mCurResources = initRes;
return false;
}
return true;
}
protected void updateView() {
this.mOut.setText("");
try {
XmlResourceParser xml =null;
xml =mCurAm.openXmlResourceParser("AndroidManifest.xml");
this.mInput.setText("/sdcard/"+ getPkgName() + ".txt");
this.mOut.append(getXMLText(xml,mCurResources));
} catch (IOException ioe) {
this.showError("ReadingXML", ioe);
}
}
protectedCharSequence getXMLText(XmlResourceParser xrp,
ResourcescurrentResources) {
StringBuffer sb = newStringBuffer();
int indent = 0;
try {
int eventType =xrp.getEventType();
while (eventType !=XmlPullParser.END_DOCUMENT) {
// for sb
switch(eventType) {
caseXmlPullParser.START_TAG:
indent +=1;
sb.append("\n");
insertSpaces(sb,indent);
sb.append("<"+ xrp.getName());
sb.append(getAttribs(xrp,currentResources));
sb.append(">");
break;
caseXmlPullParser.END_TAG:
indent -=1;
sb.append("\n");
insertSpaces(sb,indent);
sb.append("</"+ xrp.getName() + ">");
break;
caseXmlPullParser.TEXT:
sb.append(""+ xrp.getText());
break;
caseXmlPullParser.CDSECT:
sb.append("<!CDATA["+ xrp.getText() + "]]>");
break;
caseXmlPullParser.PROCESSING_INSTRUCTION:
sb.append("<?"+ xrp.getText() + "?>");
break;
caseXmlPullParser.COMMENT:
sb.append("<!--"+ xrp.getText() + "-->");
break;
}
eventType =xrp.nextToken();
}
} catch (IOException ioe) {
showError("ReadingXML", ioe);
} catch(XmlPullParserException xppe) {
showError("ParsingXML", xppe);
}
return sb;
}
- Manifest Explorer
- Manifest Explorer
- manifest
- Manifest
- *.manifest
- <manifest>
- Manifest
- Manifest
- Explorer
- Explorer
- manifest笔记
- MANIFEST.mf
- manifest相关
- Manifest详解
- Assembly Manifest
- Assembly Manifest
- manifest 文件
- VC manifest
- html横向导入word
- vim安装super tab 叉件,
- Oracle数据库的锁机制
- XCODE4.6从零开始添加视图
- hello world
- Manifest Explorer
- vbox4.2 + oraclelinux 6.2(32位版本) + oracle11 搭建RAC 环境(一)
- C 日积月累
- 宏定义中使用do{}while(0)的好处
- Package Play
- Thinking in C++: 静态指针与指向静态类型的指针
- VS2010无法打开头文件iostream.h
- JDBC中驱动加载的过程分析
- poj 1947 树形dp 背包