Android开发——减小APK大小】的更多相关文章

0. 前言 APK的大小对APP的加载速度,使用内存大小和消耗功率多少有一定影响.如何减小APK的大小对于Android开发者是一个永恒的话题. 查阅了很多相关资料,并将其做了删减以及总结.本文原创,转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52199151 首先就来了解一下APK的组成结构.   1. APK的组成结构 META-INF:包含CERT.SF和CERT.RSA签名文件,和MANIFEST.MF清单文件. ass…
前言 用户通常会避免下载比较大的应用,特别是连接到2G和3G网络,或者按流量收费的设备.这篇文章描述了如何减小apk的大小,帮助你让更多的用户下载你的app. 一 理解APK的结构 在讨论如何减小apk大小之前,理解apk的结构很有必要.一个APK文件包括一个ZIP 文件,该ZIP包含app的所有文件.包括java 字节码文件,资源文件和一个包含了编译后的资源文件.APK包含以下目录: META-INF/:包含了CERT.SF 和 CERT.RSA 签名文件, 以及 MANIFEST.MFman…
android mvp框架:dileber(https://github.com/dileber/dileber.git) 继续为大家介绍android mvp开源框架 dileber  今天主要是字体图标相关知识 官方交流qq群:171443726 我个人qq:297165331--有什么问题也能够咨询-- 首先这个工具是基于dileber的工具,假设用dileber会更好使用它 假设大家不知道dileber的话就看看我前几篇文章 今天我给大家讲一个怎样更好的设计 Android界面的工具 为…
能不引用的外部包就不用,删除没用的图片.xml,优化代码去掉没用的部分,能异步下载的资源就运行时从网络上下载.…
本篇文章翻译自Reduce APK Size 用户通常不会去下载体积过大的应用程序,特别是当自己的设备连接的是 2G/3G 或者按字节付费的网络.这篇文章描述了如何缩减 APK 的体积大小,以使得更多用户愿意下载你开发的应用. 了解APK结构 在讨论如何缩减你应用的体积之前,了解 APK 结构是非常有益处的.一个 APK 文件包含了一个 ZIP 文件,该 ZIP 文件包含了组成你应用的所有文件,这些文件包括 Java 字节码文件.资源文件和已编译资源的文件. APK 包含下列目录: META-I…
一.反编译工具: 1.APKTool: APKTool是由GOOGLE提供的APK编译工具,能够完成反编译及回编译apk的工作.同时,它也有着安装反编译系统apk所需要的framework-res框架,以及清理以前反编译文件夹等功能. APKTool的使用需要java支持. 2.dex2jar: dex2jar 是将android的.dex文件转换成Java的.class文件的转换工具,如果在转换过程中有问题的话,可以试用下其他的版本. 3.jd-gui: JD分为JD-GUI.JD-Eclip…
问题背景 此问题一般出现在,同时使用了Eclipse和Android Studio,eclipse是不会去下载最新的Android的相关tools,但是studio有时候会自动更新最新的build-tools.这就导致了 你eclipse编译的时候使用的build-tools可能出现问题,今天我就遇到了,经过多次查找及实践,终于解决了,也对网上一些帖子进行了一些补充.解决方法 其实解决方式非常简单,就是把SDK的其他版本的build-tools转移到最新的build-tools下.第一步:找到你…
)密度无关像素,单位为dp,是Android特有的单位 Android开发时通常使用dp而不是px单位设置图片大小,因为它可以保证在不同屏幕像素密度的设备上显示相同的效果. /** * dp与px的转换 * Created by SEU_Calvin on 2016/09/28 */ public class DensityUtils { public static int dp2px(float dp , Context context){ float density = context.ge…
)Android2.3以后,SoftReference不再可靠.垃圾回收期更容易回收它,不再是内存不足时才回收软引用.那么缓存机制便失去了意义.Google官方建议使用LruCache作为缓存的集合类. 其实内部封装了LinkedHashMap.内部原理是一直判断集合大小是否超出给定的最大值,超出就把最早最少使用的对象踢出集合. private LruCache<String, Bitmap> mMemoryCache = new LruCache<String, Bitmap>…
本节和<Android群英传>中的第六章Android绘图机制与处理技巧有关系,建议先阅读该章的总结 第6章 Android的Drawable 6.1 Drawable简介 (1)Android的Drawable表示的是一种可以在Canvas上进行绘制的概念,它的种类很多,最常见的就是图片和颜色了.它有两个重要的优点:一是比自定义view要简单:二是非图片类型的drawable占用空间小,利于减小apk大小.(2)Drawable是抽象类,是所有Drawable对象的基类.(3)Drawabl…
Visual Studio中用Xamarin开发Android应用,生成apk文件有3种方法 1.debug时,代码目录下bin\Debug中会自动生成调试用***-Signed.apk文件,但是文件Size非常大,不建议使用. 2.Release时,“部署”勾选√,生成--部署解决方案后,代码目录下bin\Release中会自动生成部署用***-Signed.apk文件,文件Size比较小.…
学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译.我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或者平板电脑下载下来进行安装.正常情况下,Android应用打包成apk之后,就无法再看到开发这个应用时使用的资源文件以及代码了.但是我们通过网上提供了一些工具,还是可以将apk进行反编译的,apk反编译之后,我们就可以看到开发这个应用使用的资源文件(图片).layout.样式.相关的实现代码等,ap…
本文章麦子学院跟小伙伴们详细的分享一下关于Android Ant命令行编译和APK签名详解一些实现方法,这是一个朋友在自己做安卓开发时写的,希望对大家会有所帮助呀. 最近在做Android开发时,需要引用第三方的代码进项目,一般情况下,直接在Eclipse下设置需要导入的代码的编译输出为library即可,但是很多代码在Eclipse下编译会出现很多莫名其妙的错误.因而只能使用命令行方式对代码进行编译.具体方法如下: 1.安装编译用的Java,安装Android Platform-tools,安…
学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译.我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或者平板电脑下载下来进行安装.正常情况下,Android应用打包成apk之后,就无法再看到开发这个应用时使用的资源文件以及代码了.但是我们通过网上提供了一些工具,还是可以将apk进行反编译的,apk反编译之后,我们就可以看到开发这个应用使用的资源文件(图片).layout.样式.相关的实现代码等,ap…
有时候在布局界面的时候,UI要求某个View或者某张图片按比例显示,以适应不同的屏幕分辨率. 通常我们时通过自定义View或者引入第三方的库来解决.现在我们既然已经使用了ConstraintLayout,它本身就支持这样的按比例设置View大小的功能. 下面我们来介绍如何使用: 首先我们在布局中添加一个View: 此时,没有添加任何约束,显示的比例就是原始图片的比例. 添加水平方向的约束: 添加完水平方向的约束后,注意此时默认的宽高为wrap_content. 将高度设置为match_const…
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985,转载请说明出处. install failed invalid uri Android开发之模拟器genymotion安装apk出现错误: Install_failed_invalid_URI 解决方法: 我是发现apk文件名带有中文,然后改成全英文,再次拖入安装即成功.…
资源来源:http://blog.csdn.net/qualcent/article/details/6959547 完成Android项目后,需要将程序打包成APK文件(Android Package),其后缀名为".apk".打包的APK文件可以在Android模拟器或者Android手机上安装运行.Android系统要求具有开发者签名的私人密钥的应用程序才可以被安装.Android项目打包和生成数字签名可以使用命令行的方式,但Eclipse中的向导可以方便快捷的完成整个流程. 以…
Android系统在安装应用时,往往需要优化Dex,而由于处理工具DexOpt对id数目的限制,导致其处理的数目不能超过65536个,因此在Android开发中,需要使用到MultiDex来解决这个问题,MultiDex可以配合Android Studio实现一个apk包含多个dex的功能,现在就让我们来看看MultiDex究竟是怎么一回事? 1.MultiDex的工作原理 关于这个问题,以APK中有两个dex文件为例,第二个dex文件为classes2.dex. 在 Android应用安装中,…
转载请注明出处: http://www.cnblogs.com/soaringEveryday/p/5254520.html 随着Android移动开发的需求越来越复杂,我们不可避免的遇到发布出去的apk体积越来越大的问题,目前超过10MB.20MB的apk已经是很常见的事情了,但是依然能够看到一些apk的体积控制的很小.apk体积增大源于: 新需求不断的提出 需要支持高分辨率的屏幕而加入了高分图片 依赖了更多的第三方库 本文将从我自己的经历项目中探讨如何有效减小apk的体积.减小Apk体积是一…
  Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http://blog.csdn.net/finddreams/article/details/44301359 上一篇文章我们已经了解了Android笔试的一些基础题目, [<Android开发面试经——2.常见Android基础笔试题> ] (http://blog.csdn.net/finddreams…
简评: 自己过去在 Android 开发中发现的好工具,在这里分享给大家.: ) Library methods count 每一个 Android App 的开发中都会用到很多的库,这个工具能够让你看到不同库的大小和,帮助你回避 65K 方法数限制. Stetho Stetho 是 Facebook 构建的一个 Android debug 工具,能够和 Chrome 浏览器绑定,使得你可以通过 Chrome 来调试 Android 应用,比如查看网络请求情况和 SQLite 数据库. Leak…
1. android单实例运行方法 我们都知道Android平台没有任务管理器,而内部App维护者一个Activity history stack来实现窗口显示和销毁,对于常规从快捷方式运行来看都是startActivity可能会使用FLAG_ACTIVITY_NEW_TASK标记来打开一个新窗口,比如Launcher,所以考虑单任务的实现方法比较简单,首先Android123纠正下大家一种错误的方法就是直接在androidmanifest.xml的application节点中加入android…
友情提示根据目录 快速查找问题 %1$s %1$d Android string 1.整型,比如"我今年23岁了",这个23是整型的.在string.xml中可以这样写,<string name="old">我今年%1$d岁了</string>  在程序中,使用  [java] view plaincopy String sAgeFormat = getResources().getString(R.string.old); String s…
首先是看了博客:http://blog.csdn.net/sw950729/article/details/64919051 时.认为大神我就是马云飞写的非常有道理.全部自己就自己写了一遍.长话短说: 在实际开发中,特别是多人接手迭代开发的项目中,随着时间的推移,项目会越来越大.所以让项目大小变小是能够例如以下操作: 1,在gradle使用minifyEnabled进行Proguard混淆的配置,可大大减小APP大小,例如以下面代码: buildTypes { release { //开启混淆(…
需求 自适应大小的文本: 效果图: 项目开发中,开发人员根据UI人员提供的一套尺寸,布局了一些带文本的页面, 往往会少考虑一些数据极限的问题,造成机型屏幕适配问题. 例如: 文本(或数值)长度可变,如经验值.金币数量等,如果页面同一高度使用了多个Textview布局摆放,当Textview文本长度增加时,有可能造成重叠现象. 例子还有很多,相信很多开发人员也都曾遇到过. 今天我们就写一个简单的例子,解决该问题. 我们项目中的实际需求: 1. 文本控件单行.居中显示: 2. 文本控件默认有一个固定…
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680 本篇文章将继续从APK瘦身来介绍APK大小优化:文章主要内容从理论出发,再做实际操作.分为下面几个方面:1. 结构分析, 2.具体实操 3. 总结 1. 结构分析 首先上传一张瘦身前通过Analyze app分析出来的图片(打开方式:Android Studio下 ——> Build——> Analyze app):   ​   APK包结构如下:lib/:包…
Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方式Android和iOS还是区别挺大的,在iOS中有Frame绝对布局和AutoLayout相对布局.而在Android中的布局方式就比较丰富了,今天博客中会介绍四种常用的布局方式.先总结一下控件,然后再搞一搞基本方式,开发环境还是用的Mac下的Android Studio.开始今天的正题, 虽然A…
在html中大家都知道布局是什么意思了,简单来说就是将页面划分模块,比如html中的div.table等.那么Android中也是这样的.Android五大布局让界面更加美化,开发起来也更加方便.当然布局方式不一样应用的地方也不一样,当然了有的布局方式也是可以相互转换和嵌套使用的.它们都各有各的优缺点,具体页面要怎么布局还是得看开发需求,但是用的最多的还是相对布局.线性布局以及相对布局和线性布局的嵌套使用.当然,我说的是安卓,并没有指定是安卓手机,比如平板.智能家居(电视...)很多都是Andr…
前言 啦啦啦~博主又推出了一个新的系列啦~ 之前的Android开发系列主要以完成实验的过程为主,经常会综合许多知识来写,所以难免会有知识点的交杂,给人一种混乱的感觉. 所以博主推出“重点难点”系列,将博主在完成实验的过程中遇到的重.难点或者出现问题较多的地方写出来与大家分享,使大家能更好的学习Android开发的相关知识(我知道我是好人,大家不用夸奖我啦~手动滑稽). 之前的实验部分也会继续更新啦~ 接下来进入正题~自然先从布局开始,线性布局大家都比较好理解,此次博主带来的是RelativeL…
前言 啦啦啦~博主又来骚扰大家啦~大家是不是感觉上次的Android开发博文有点长呢~主要是因为博主也是小白,在做实验的过程中查询了很多很多概念,努力去理解每一个知识点,才完成了最终的实验.还有就是随着我们的实验的进行,代码量也会越来越多,所以在接下来的博文中会对源码进行取舍,而不会把全部的实验代码都放到博文中~ 大家在看博文时如果有什么意见或者感觉博主有说错.说的不清楚的地方可以在评论中留言,博主会第一时间回复大家~我们一起学习,共同进步~ 好啦~进入正题~ 本次Android开发,我们主要探…