技术|Android安装包优化】的更多相关文章

版权声明 1.本文版权归原作者所有,转载需注明作者信息及原文出处. 2.本文作者:赵裕(vimerzhao),永久链接:https://github.com/vimerzhao/vimerzhao.github.io/blob/master/android/2020-02-11-apk-size-opt.md. 3.作者公众号:V大师在一号线 .联系邮箱:vimerzhao@foxmail.com. 背景 安装包膨胀的原因 业务的增加.产品的演进是安装包大小增加的本质原因.但是在演进之路上,由于…
版权声明 1.本文版权归原作者所有,转载需注明作者信息及原文出处. 2.本文作者:赵裕(vimerzhao),永久链接:https://github.com/vimerzhao/vimerzhao.github.io/blob/master/android/2020-01-17-opt-apk-size-by-remove-debuginfo.md. 3.作者公众号:V大师在一号线 .联系邮箱:vimerzhao@foxmail.com. 目录: 背景 原理 实现 4.0(华为畅玩4C,版本4.…
转自: https://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=208008519&idx=1&sn=278b7793699a654b51588319b15b3013&scene=1&srcid=0928jKlaG1Olshvzs6QGA8ex&key=2877d24f51fa53847e850ce3078aa9536aff68a603e36b39bbd456614ed24eadfff5289941af00…
1.首先先科普一下,android为什么需要给安装包签名: 所有的Android应用程序在发布之前都要求开发人员用一个证书进行数字签名,anroid系统不会安装没有进行签名的由于程序.    平时我们的程序可以在模拟器上安装并运行,是因为在应用程序开发期间,由于是以Debug面试进行编译的,因此ADT根据会自动用默认的密钥和证书来进行签名,而在以发布模式编译时,apk文件就不会得到自动签名,这样就需要进行手工签名. 给apk签名可以带来以下好处:    1. 应用程序升级:如果你希望用户无缝升级…
当我们将Android升级功能的中的下载新版本apk文件存放在data/data/xxx.apk位置时,在有的些版本的手机中安装可能会出现安装包解析出错的问题,对于该问题的解决方案是提升该文件的权限. 代码: try { String command = "chmod 777 " + file.getAbsolutePath();                    Runtime runtime = Runtime.getRuntime();                    …
原地址:http://blog.csdn.net/u012085988/article/details/17393111 1.jdk本人安装的是win32版的(虽然系统是64位的.但听说装64位的导出时会报错).这个很重要,我当时就因为装错了jdk,蛋疼了好久. 2.android sdk.为了防止兼容问题,我直接下载的adt 20131030(Android Developer Tools). 3.unity.本人unity版本为4.1.5f1. 基本就这些东西了.就这三个步骤,折腾了我整整一…
今天遇到一个需求.获取全部apk的签名的MD5.以下是我使用Java SE实现的一个工具.贴出核心源码.希望给有须要的朋友有所帮助. 界面例如以下: 仅仅须要制定.apk文件所在的文件夹就可以,核心代码例如以下: public class ReadCmdLine { private static MD5Window window; private static String inputPath; public static void main(String args[]) { window =…
一.背景和现状 安装包的重要性无需多提,针对安装包质量控制越来越严格和规范,包括证书.文件大小.安装成功率等,APP的证书及混淆是影响APP的安装成功率及代码安全性的很大因素,随着功能迭代,安装包也会随之增大,那么用户下载和app激活转化率就会越低,同时在提交及发布渠道时的错误率也会提升,所以成熟的app会不定期进行安装包瘦身实践,通过对于代码.资源文件等梳理将安装包大小控制在一个合理的值.(比如有app,iOS安装包大小控制在55M,Android安装包大小控制在28M等). 目前组内针对这一…
安装包优化大小方法: <资源优化> 1.去除无用资源 通过几次项目的升级后,项目中会出现一些没有用到的图片.这些图片在我们导入到项目中后,之后项目升级过程后并没有再次用到. 那这些图片我们是需要给他删除掉.那么一张一张排查图片比较麻烦.在这里给大家推荐一款工具-LSUnusedResources. 这款工具可以检索到项目中没有用到的资源.并且给出路径地址.我们这个时候就可以根据路径去删除无用的资源. 2压缩资源 使用工具去压缩图片 其实在我们使用这些图片的时候,我们其实是用的一些图片,但是像图…
本文由爱奇艺技术团队原创分享,原题<爱奇艺Android客户端启动优化与分析>. 1.引言 互联网领域里有个八秒定律,如果网页打开时间超过8秒,便会有超过70%的用户放弃等待,对Android APP而言,要求更加严格,如果系统无响应时间超过5秒,便会出现ANR,APP可能会被强制关闭,因此,启动时间作为一个重要的性能指标,关系着用户的第一体验. 爱奇艺安卓APP非常重视启动速度的优化,本文将从启动过程.启动时间测量.启动优化.以及后续监控等方面分享我们在启动优化方面积累的经验.   相关文章…
Android App安装包瘦身计划 Android App安装包体积优化: 理由, 指标和可以采用的方法. 本文内容归纳如下图: 为什么要安装包瘦身 安装包需要瘦身吗? 不需要吗? 安装包要瘦身的主要原因就是考虑应用的下载转化率和留存率. 应用太大了, 用户可能就不下载了, 尤其是移动网络或者流量收费的情况下. 再者, 因为手机空间问题, 用户有时候可能需要选择卸载一些应用, 就会先盯上那些占空间大的, 所以应用大小也会也影响留存率. 但现在什么时代了, 到处都是WiFi, 流量包又大又便宜,…
zipalign.exe是Android自带的一个档案整理工具,它可以用于优化APK安装包,从而提升Android应用与系统之间的交互效率,提升应用程序的运行速度. 操作步骤: 1.在命令行窗口输入如下命令: zipalign -f -v 4 HelloWorld_crazyit.apk HelloWorld_crazyit_zip.apk 上面的命令中各选项说明如下: -f:指定强制覆盖已有的文件 -v:指定生成详细输出 4:指定档案整理所基于的字节数,通常指定为4,也就是基于32位进行整理…
背景介绍: 最近在做Robotium自动化测试,使用到solo.takeScreenshot()函数以在测试过程中截图,但此函数需要被测试APP具有<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />权限.在只有被测试APP的apk文件的情况下,修改apk文件后缀名为zip,解压缩后,修改AndroidManifest.xml文件,删除META-INF文件夹,重压缩为apk文…
首先,感谢微信android团队的分享 微信中的资源混淆工具主要为了混淆资源ID长度(例如将res/drawable/welcome.png混淆为r/s/a.png),同时利用7z深度压缩,大大减少了安装包体积,同时也增加了逼格,提升了反破解难度.本文主要是对此做一个简单分析. 写在前言 资源混淆工具大约是在2014年4月实现,并在微信5.4中使用,减少了大约1M的空间.然后在8月在公司内部开源,现以推广到QQ邮箱.QQ空间.手机管家等多个产品中使用. 具体源码与使用方法详细在github中:…
在App Store上显示的下载大小和实际下载下来的大小,我们通过下表做一个对比: iPhone型号 系统 AppStore 显示大小 下载到设备大小 iPhone6 10.2.1 91.5MB 88.9MB iPhone6 10.1.1 91.5MB 88.9MB iPhone6 9.3.5 91.5MB 84.8MB iPhone 5 9.2 91.5MB 84.8MB iPhone6 plus 10.0.2 95.7MB 93.2MB iPhone7 plus 10.3.0 95.7MB…
一.安装包检查的具体包含内容有哪些? 1.安装包检查的一般内容包括: 安装包基本信息检查: 文件大小: xx MB 包名: com.xx 名称:  xx 本次安装包证书与外网证书对比一致性:是 版本号: xx.xx.xx 内部版本号: xx min SDK:xx log是否关闭:是 是否混淆: 是 重复文件个数:xx 项 重复文件大小:xx KB/MB 资源文件空文件列表: 资源文件重复文件列表:(共xx项) 二.获取具体的内容的方案: 具体需要获取的内容如下: (一)关于混淆 1.什么是混淆?…
继上篇博客,我接下来做的是一个九宫格界面,但是对之前的Splash页面我还有要说的就是,当出现网络异常.json解析异常或者没有更新的时候,我们都必须要跳转到我们的主页面,因为Splash页面仅是展示一下我们的开发的品牌和版本信息,我们没有必要因为网络没有接通等一些异常,就让用户使用不了我们的软件.所以我们应该做的 是当出现这些异常的时候,我们要用Toast提示一下用户到底出现了什么异常.所以在之前的代码基础上我增加了红色的代码. 上篇博客当我们检查到新版本的时候,我们来下载这个安装包.以及显示…
参考地址:http://www.cnblogs.com/tc310/archive/2012/12/21/2828450.html 问题描述: Android SDK Manager 无法下载更新,或者更新速度超慢,或者待安装包列表不显示 解决方法: 第一步:修改hosts文件 修改后的hosts 文件内容为: 按 Ctrl+C 复制代码 127.0.0.1 localhost #Google主页 203.208.46.146 www.google.com #这行是为了方便打开Android开发…
Xamarin 配置手册和离线包下载 http://pan.baidu.com/s/1eQ3qw8a 具体操作: 安装前提条件 1. 安装Visual Studio 2013,安装过程省略,我这里安装的windows10 + vs2013 with update 4. 2. 安装Java SDK,按照Next一步步安装,此处省略,如下图: 3. 安装Android SDK:因为在线安装的访问google存在问题,而且速度慢,这里采用离线安装包,拷贝Android SDK到指定目录 我这里拷贝到C…
很显然,APK安装包越小越好.下面从代码,资源文件,使用策略几个方面简要介绍下: 代码 保持良好的编程习惯,不要重复或者不用的代码,谨慎添加libs,移除使用不到的libs. 使用proguard混淆代码,它会对不用的代码做优化,并且混淆后也能够减少安装包的大小. native code的部分,大多数情况下只需要支持armabi与x86的架构即可.如果非必须,可以考虑拿掉x86的部分. 资源 使用Lint工具查找没有使用到的资源.去除不使用的图片,String,XML等等. assets目录下的…
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 使用Android studio发布apk安装包的操作步骤. 开始打包发布apk Build > Generate Signed APK… 如果该项目没有jks签名文件,则需要生成. 如果该项目含有jks签名文件,则导入即可. 生成jks签名文件 选择Create new… Key store path:密钥库(签名)文件的保存路径 Password/Confirm:密钥库(签名库)的密码/确认密钥库密码 ==key== Ali…
Robotium的手机自动化测试,很多都是利用app源代码里的Id定义来开发自动化脚本.而在我开始要为项目中的app写自动化测试脚本的时 候,开发的环境还很不稳定,app也还处于开发的状态中,而且,在需要自己搭建Android整个开发环境的时候,也遇到许多需要耗费很多时间去解决的开 发问题.因此,我觉得,在这种情况下,如果自己的自动化脚本环境能和开发完全独立,那么,应该可以更好地展开自动化脚本的开发.所以,在网上一番探索后, 选择了只需要apk安装包的方法. 当然,这样也会遇到问题,比如,在开发…
什么是反编译 我们知道,Android的程序打包后会生成一个APK文件,这个文件可以直接安装到任何Android手机上,因此,反编译就是对这个APK进行反编译.Android的反编译分成两个部分: 一个是对 代码 反编译,也就是java文件的反编译. 一个是对 资源 反编译,也就是res文件的反编译. 反编译结构图 反编译并查看java代码的工具: dex2jar: 把dex文件转成jar文件下载地址: https://sourceforge.net/projects/dex2jar/ jd-g…
提到Spoon可能大家还会感到陌生,但是如果提及XenoCode那么研究过DOTNET的人应该都知道吧.Spoon的前身就是XenoCode,虽然没有了PostBuild这个混淆软件,但是虚拟化技术仍然在完善,Spoon可以让DOTNET.JAVA和Flash程序脱离Framework在电脑上独立运行.最新的spoon已经可以支持DOTNET4.0了.     网上破解Spoon的教程几乎没有,有的也只有Danny_Su直接提供的破解版本.而我最为羡慕的就是Danny提供的版本中拥有原版安装界面…
需要实现此功能,一般实际开发是在自动版本更新上,当更新完开始自动安装完毕后,删除内存卡里的安装包.实现方式很简单,监听应用广播,获取内存卡下的文件,删除! 1.监听广播 package com.example.a75213.testdownloaddemo; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.…
官方学习文档:http://developer.xamarin.com/guides/android/getting_started/ 官方学习例子:http://developer.xamarin.com/samples/android/all/ Xamarin 配置手册和离线包下载 http://pan.baidu.com/s/1eQ3qw8a 具体操作: 安装前提条件(在这里演示通过的是vs2013+up4) 1. 安装Visual Studio 2013,安装过程省略,我这里安装的win…
关于iOS和Android的安装包更新问题 1. Android更新apk 1)使用DownloadManager下载 2)使用HttpClient下载 apk的下载不能使用ssl,即不能使用https,因为DownloadManager不支持https 参考: http://stackoverflow.com/questions/8106155/android-downloadmanager-and-ssl-https http://www.google.com/codesearch#cZwl…
问题描述: Android SDK Manager 无法下载更新,或者更新速度超慢,或者待安装包列表不显示 解决方法: 第一步:修改hosts文件 修改后的hosts 文件内容为: 127.0.0.1 localhost #Google主页 203.208.46.146 www.google.com #这行是为了方便打开Android开发官网 现在好像不VPN也可以打开 74.125.113.121 developer.android.com #更新的内容从以下地址下载 203.208.46.1…
一 打开构建对话框. 二 创建新的密钥库(key store) 可以选择已创建的密钥库,也可以选择创建新的密钥库. 创建完成后,自动导入. 三 选择签名类型. 如果不选,会提示错误. 这里将新旧两种签名方式都勾选. 四 生成签名安装包,并安装到手机.…
说明: 软件默认生成的安装包没有签名,现在手机安装APP的时候要求,安装包必须有签名才可以 默认生成的APK位置 现在生成带有签名的APK 我一般放到当前工程根目录,然后文件名字 key 有些时候需要用到本APP的   MD5 和 SHA1…