快牙传输应用apk原理

呃。。。。

肯定有人已经知道了,那么......大神别虐我啊.....

为什么想到研究这个呢;主要是满足公司高层的求知欲,呃 ,你们懂的。

高层问我的时候,我给他解释说:Android系统应用管理原理,应用安装以后,会在内部存储生成应用包名的目录,一个保存apk解压文件内容,一个保存应用apk.....强行解释。。。。

关于这一点其实我也不是很了解,只是记得以前有朋友提了那么一句。然后我又找了另外一个朋友咨询了一下(朋友多,请谅解,生气)他说:可能是把应用打包了,然后传输。。。。再见(所以说,朋友多不一定管用,友尽.......)

使用快牙、QQ等应用传输软件就可以发现,从传输开始到结束速度都是非常快的,如果加入打包操作那就非常....

依然坚持自己的想法,他们是找到apk文件直接传输的;(注意看,重点)所以果断Root了公司的手机,使用DDMS打开了手机的内部存储目录(/data/app/包名-1(也有可能是是包名-2));如果没有权限查看的话:记得使用adb shell  执行chmod 777 /data/app/包名-1/   意思是获取这个这个目录的 777(读r=4、写w=2、运行x=1权限.。

就可以发现有个名为base.apk的文件。妥了,这个就是了。如何获取呢?

你可以这样:先读取 包名-1.apk,如果不存在,则读取 包名-2.apk,如果都不存在那就是没有了。

是不是很复杂,哈哈,Android已经提供了api

public static String getSourceApkPath(Context context, String packageName) {

        if (TextUtils.isEmpty(packageName))
            return null;
        try {
            ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(packageName, 0);
            return appInfo.sourceDir;
        } catch (NameNotFoundException e) {
            e.printStackTrace();
        }
        return null;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值