android开发

大牛耗时一年:深入探索 Android 包体积优化,共三万字建议收藏上

跟風遠走 提交于 2020-04-04 00:04:05
由于文章特别长,建议先收藏再阅读。 在 Android 性能优化的知识体系当中,包体积优化一直被排在优先级比较低的位置,从而导致很多开发同学对自身应用的大小并不重视。在项目发展的历程中,一般可划分为如下三个阶段: 初创期 => 成长期 => 成熟期 通常来说,当应用处于成长期的中后阶段时,才会考虑去做系统的包体积优化,因此,只有在这个阶段及之后,包体积优化带来的收益才是可观的。 那么,包体积优化能够给我们带来哪些 收益 呢?如何全面对应用的包体积进行 系统分析 及 针对性优化呢?在这篇文章中,我们将一起进行深入地分析与探索。 1、瘦身优化及 Apk 分析方案介绍 1、瘦身优势 我们首先来介绍下,为什么我们需要做 APK 的瘦身优化? 主要有 三个方面 的原因: (1)下载转化率 APK 瘦身优化在实际的项目中优先级是比较低的,因为做了之后它的好处不是那么明显,尤其是那些还没有到 稳定期 的项目,我们都知道,App 的发展历程是从 项目初期 => 成长期 => 稳定期,对于处于 发展初期与成长期 的项目而言,可能会做 启动优化、卡顿优化,但是一般不会做 瘦身优化,瘦身优化 最主要的好处是对应用 下载转化率 的影响,它是 App 业务运营的重要指标之一,在项目精细化运营的阶段是非常重要的。 因为如果你的 App 与其它同类型的 App 相比 Apk 体积要更小的话,那么你的 App

2019 年终总结,240+篇,已分类整理

对着背影说爱祢 提交于 2020-04-04 00:03:24
code小生 一个专注大前端领域的技术平台 以下内容按照技术模块来划分,每个大的分类下文章顺序是按照难易程序来的,这样学习起来方便些。 2017 | 我在 5 个月时间里分享了 98 篇文章 2017 下半年总结 2018 文章合集 日常开发技术 仿网易考拉 个人中心 tableView弹簧动画 Android 仿网易云鲸云音效动效 Android-图片的选择,裁剪,压缩,适配高版本 【Android】线程/进程绑定指定CPU核 Android 官方架构组件(一)——Lifecycle Android 读写锁的应用,以及最佳的磁盘缓存设计 RxJava2+Retrofit2+RxLifecycle3+OkHttp3网络请求封装 Android 官方架构组件(二)——LiveData 玩转通讯录备份(JNI实战) Android 官方架构组件(三)——ViewModel ​迟来的 2018 年总结 Android 研发技术进阶之路 ​APP上架到各大应用市场技巧 Android 框架思考--工具类设计(Glide、Picasso切换实现) ​在安卓的道路上铿锵前行 ​Android Glide缓存策略分析 ​UiStatus 一个简单且强大的 Android Ui 视图状态控制库 ​Android性能优化:关于 内存泄露 的知识都在这里了!(文不如图,图不如表) ​无懈可击

Android APK反编译详解(附图)

邮差的信 提交于 2020-04-03 05:49:35
android 反编译工具 jar 下载工具 java 64bit 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。 在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。 本文Android反编译教程,测试环境: Win7 Ultimate x64 Ubuntu 12.04 x86_x64 反编译工具包 下载 (2012-10-10更新) 一、Apk 反编译 得到Java源代码 下载上述反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。 apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件 源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码 dex2jar 和 jdgui 最新版本下载,分别见google code: dex2jar (google code) jdgui (google code),最新版本请见 官方 具体步骤: 首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes

Android反编译教程

牧云@^-^@ 提交于 2020-04-03 05:49:06
这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。 在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。 本文Android反编译教程,测试环境: Win7 Ultimate x64 Ubuntu 12.04 x86_x64 反编译工具包 下载 (2012-10-10更新) 一、Apk 反编译 得到Java源代码 下载上述反编译工具包,打开 apk2java 目录下的 dex2jar-0.0.9.9 文件夹,内含apk反编译成java源码工具,以及源码查看工具。 apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件 源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码 dex2jar 和 jdgui 最新版本下载,分别见google code: dex2jar (google code) jdgui (google code),最新版本请见 官方 具体步骤: 首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex复制到dex2jar.bat所在目录 dex2jar-0.0.9

Android APK反编译详解(附图)

感情迁移 提交于 2020-04-03 05:48:36
这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。 在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。 本文Android反编译教程,测试环境: Win7 Ultimate x64 Ubuntu 12.04 x86_x64 反编译工具包 下载 (2012-10-10更新) 一、Apk 反编译 得到Java源代码 下载上述反编译工具包,打开 apk2java 目录下的 dex2jar-0.0.9.9 文件夹,内含apk反编译成java源码工具,以及源码查看工具。 apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件 源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码 dex2jar 和 jdgui 最新版本下载,分别见google code: dex2jar (google code) jdgui (google code),最新版本请见 官方 具体步骤: 首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex复制到dex2jar.bat所在目录 dex2jar-0.0.9

Android混淆打包

夙愿已清 提交于 2020-04-03 05:48:27
在这之前,看了下proguard官网介绍,并搜了下相关资料。 ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目。官网网址是:http://proguard.sourceforge.net/。 Java的字节码一般是非常容易反编译的。为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理。ProGuard的主要作用就是混淆。当然它还能对字节码进行缩减体积、优化等,但那些对于我们来说都算是次要的功能。 引用ProGuard官方的一段话来介绍就是: ProGuard is a free Java class file shrinker, optimizer, obfuscator, and preverifier. It detects and removes unused classes, fields, methods, and attributes. It optimizes bytecode and removes unused instructions. It renames the remaining classes, fields, and methods using short meaningless names. Finally, it preverifies the processed code for

android面试题整理

半世苍凉 提交于 2020-04-03 04:31:41
以下是整理的一些android面试题,希望对大家有用。 1. 什么是Activity? 四大组件之一,一般的,一个用户交互界面对应一个activity, activity 是Context的子类,同时实现了window.callback和keyevent.callback, 可以处理与窗体用户交互的事件. 我开发常用的的有ListActivity , PreferenceActivity 等…如果界面有共同的特点或者功能的时候,还会自己定义一个BaseActivity. 2. 请描述一下Activity生命周期。 生命周期描述的是一个类 从创建(new出来)到死亡(垃圾回收)的过程中会执行的方法.. 在这个过程中 会针对不同的生命阶段会调用不同的方法 Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:oncreate ondestroy onstop onstart onresume onpause 其实这些方法都是两两对应的,onCreate创建与onDestroy销毁; onStart可见与onStop不可见;onResume可编辑(即焦点)与onPause; 这6个方法是相对应的,那么就只剩下一个onRestart方法了,这个方法在什么时候调用呢? 答案就是:在Activity被onStop后,但是没有被onDestroy

Android开发——浅谈onInterceptTouchEvent、onTouchEvent与onTouch

﹥>﹥吖頭↗ 提交于 2020-04-03 04:24:51
一、onTouch onTouch是View中OnTouchListener接口中的方法,处理View及其子类被touch是的事件处理。当然,前提是touch时间能够传递到指定的view。 Q1:为什么会传递不到呢? 1:   /** 2: * Interface definition for a callback to be invoked when a touch event is 3: * dispatched to this view. The callback will be invoked before the touch 4: * event is given to the view. 5: */ 6: public interface OnTouchListener { 7: /** 8: * Called when a touch event is dispatched to a view. This allows listeners to 9: * get a chance to respond before the target view. 10: * 11: * @param v The view the touch event has been dispatched to. 12: * @param event The MotionEvent object

Android自定义控件----RadioGroup实现APP首页底部Tab的切换

谁都会走 提交于 2020-04-02 17:44:11
​ 【声明】 欢迎转载,但请保留文章原始出处→_→ 生命壹号: http://www.cnblogs.com/smyhvae/ 文章来源: http://www.cnblogs.com/smyhvae/p/4463931.html 【正文】 实现APP首页底部Tab的切换已经见过四五种方式了,先来看运行的效果图吧: 今天我们就用RadioGroup的方法来实现以下。 【开发环境】 物理机版本:win 7旗舰版(64位) IDE版本:Android Studio 1.2 preview 工程文件结构:(本文最后有源码) HomeActivity.java:整个首页的界面 四个Fragment.java:对应的四个Fragment界面 drawable文件夹中是对应tab和文字切换的状态 剩下的xml文件就是对应的Activity和Fragment的布局文件了。 一、布局文件: (1) activity_home.xml :HomeActivity的布局文件 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4

Android TextView文本处理库推荐

折月煮酒 提交于 2020-04-02 15:23:46
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自 http://javaexception.com/archives/115 Android TextView文本处理库推荐 现在市面上的app基本上都有用户注册协议这样的文本内容,在做这块功能的时候,基本上要写挺多行代码的,并且由于使用的次数比较少,很生疏,基本上都得现场百度找,想去寻找个一劳永逸的办法,下次写就直接用模板代码,代码量也尽量少,让开发者把精力用在业务上,而不是这种边边角角的东西上。以前刷github的时候收录了一批,今天特地来整理下,选取其中的几个。 1. https://github.com/wangshaolei/AutoSpannableTextView (国内开发者) star数量356 核心代码就一个类,可以复制下来在这个基础上修改,如果需求简单的话,比如文本是固定的,不是从服务器端动态获得的,那么这种xml配置的方式,还是很优秀的,我很看好。用法参考该项目文档,也很好用,强烈推荐。 2. https://github.com/armcha/AutoLinkTextView star数1074 这个项目应该是很早之前关注的,支持的功能比较多,用自定义类型可以满足特定文本的点击事件,当然了它主打的是对TextView link相关功能的扩展支持,比如@,email