在Android开发中有时会将文件放到apk assets解密目录下,因为存放在apk assets解密目录下的文件不会在R.java自动生成ID所以读取/apk assets解密目录下的文件必须指定文件的路径。
下面的代码是从apk assets解密目录下讀取里面的文件并获得一些信息:
下面将apk assets解密目录下的文件拷贝到一个临时目录下
apk文件使用解压工具就能看到drawable等资源但是有些游戏中的图片资源却是无法看到的。
这个问题探索了许久……
【1】图片资源不放置在drawable文件下放在apk assets解密中(但是解压apk,同样能看到图片资源)以下说说使用方法。
Ⅲ)这样的解析过程耗费的时间要比根据Id解析要多(手机越来越智能,这点时间基本看不出来)
【2】图片资源打包在jar下,然后导入工程(但是解压apk同样能看到图片资源)
分析:使用过一下第三方的jar包,在apk解压后是看不到的尝試看看。最终发现jar包中的apk assets解密文件在apk中可见了
【3】图片资源加密,然后在apk assets解密文件下读取(可以实现资源保护但是貌似比较耗时)
分析:通过某种方式对图片预先加密,然后在Android程序中解密在转换成Bitmap。
可能别的应用程序就是这样做的吧哪位大神有妙招,给介绍一下吧!(下面介绍一下简单方法)
Step1:加密采用文件流方式,读取资源然后修改,最后生成文件(随便格式都可以就不能知道是图片了)
【3】使用setPixel()和getPixel()对每个像素点进行加密,然后在使用的时候在还原
Step1:懒得写了直接贴代码:
注意:bitmap一定要copy一份,然后第二个值为true才能对其setPixel不然会报错的;代码中的encrypt和decrypt就是你加密解密过程;
严重问题:对bitmap setPixel然后在getPixel,color值竟然不是set的值有偏差,不知噵为什么有能解决这个问题的,请留言一下
萌新提问这个apk拆开后,打开apk assets解密就是以下的文件那么所谓的文本库是哪个呢?还是说这是那种没有文本的游戏那几个dat文件用音频的方式也打不开,这是为什么