因为需要,要在android中解析dex文件,通过解析dex文件加载文件中的class。但是解析dex不能用android提供的dexclassloader()去获取class。而是通过native方法自己去解析dex文件,然后用native方法生成一个class……
不知道大家明白我的意思了没?
求帮助啊……
不知道大家明白我的意思了没?
求帮助啊……
解决方案 »
- eclipse打不开,提示!MESSAGE FrameworkEvent ERROR,求具体解决方法
- 求 教!急!!!
- android平台上, 芯片的BSP包中串口驱动问题
- 中国没有能力开发手机操作系统吗
- 将CM移植到C网手机上,遇到收短信“嘀嘀嘀”反复响的问题,请高手来帮解决,谢谢。
- 汉化 -- 文件认证不一致
- NDK MediaPlayer开发问题
- 急求,看看这个布局哪里错了
- 关于View多次layout后被系统recycle掉的问题!
- studio新人安装问题在线求大哥解决一下!
- android 应用程序 内存问题
- Mono for Android 流播发音乐、自定义流播发音乐 怎么做?
import os
import struct
dexFile = open(dexFileName,'rb')
dexFile.seek(0x38)
dexFileStrTotal=struct.unpack("i",dexFile.read(4))[0]
dexFileStrBeganPoint=struct.unpack("i",dexFile.read(4))[0]
dexFile.seek(dexFileStrBeganPoint)
dexFileStrAddressList=[]
tmepAddressCount=0
while(tmepAddressCount<dexFileStrTotal):
dexFileStrAddressList.append(struct.unpack("i",dexFile.read(4))[0])
tmepAddressCount+=1
dexFileStrList=[]
for seekCount in dexFileStrAddressList:
listByte=[]
dexFile.seek(seekCount)
if dexFile.read(1)=="\x00":
dexFileStrList.append("")
continue
dexFile.seek(-1,1)
while True:
byteTemp=dexFile.read(1)
if byteTemp>="\x80":
pass
if byteTemp<"\x80":
break
byteCount=0
while (dexFile.read(1)!=("\x00")) :
byteCount+=1 dexFile.seek(-(byteCount+1),1)
tempStr=dexFile.read(byteCount)
dexFileStrList.append(tempStr)
dexFile.close()
return dexFileStrList
刚刚写完的python 源代码, 功能是读取dexFile 里面的所有字符串。 希望对你有帮助