Android高级进阶
butterfly1122
这个作者很懒,什么都没留下…
展开
-
压缩APK文件
0x00 我是怎么思考这件事情的APK是Android系统安装包的文件格式,关于这个话题其实是一个老生常谈的题目,不论是公司内部,还是外部网络,前人前辈已经总结出很多方法和规律。不过随着移动端技术近两年的飞速发展,一些新的思维方式和优化方法也逐渐涌现和成熟起来。笔者在实践过程中踩过一些坑,收获了一些经验,在这里做个思考和总结,所以随笔给大家,希望对大家从事相关工作的时候有所帮助和参考,同时转载 2016-06-27 17:05:22 · 1887 阅读 · 0 评论 -
自定义控件---save和saveLayler中参数的意义
一、FLAG的具体意义1、FLAG概述有关save系列函数,在canvas中总共有如下几个:[java] view plain copypublic int save() public int save(int saveFlags) public int saveLayer(RectF bounds, Pain转载 2017-11-09 15:43:44 · 2763 阅读 · 0 评论 -
彻底解决Android 应用方法数不能超过65K的问题
作为一名Android开发者,相信你对Android方法数不能超过65K的限制应该有所耳闻,随着应用程序功能不断的丰富,总有一天你会遇到一个异常:Conversion to Dalvik format failed:Unable toexecute dex: method ID not in [0, 0xffff]: 65536可能有些同学会说,解决这个问题很简单,我们只需转载 2017-11-09 14:48:00 · 380 阅读 · 0 评论 -
apk动态加载机制(一): 框架的实现
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/22597587 (来自singwhatiwanna的csdn博客)背景问题是这样的:我们知道,apk必须安装才能运行,如果不安装要是也能运行该多好啊,事实上,这不是完全不可能的,尽管它比较难实现。在理论层面上,我们可以通过一个宿主程序来运行一些未安装的apk,当然,实践转载 2016-06-21 16:39:30 · 376 阅读 · 0 评论 -
apk动态加载机制(二) : 资源加载和activity生命周期管理
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/21829971 (来自singwhatiwanna的博客)资源管理 宿主程序调起未安装的apk,一个很大的问题就是资源如何访问,具体来说就是,凡是以R开头的资源都不能访问了,因为宿主程序中并没有插件apk中的资源,所以通过宿主的context来加载资原创 2016-06-21 20:22:34 · 752 阅读 · 0 评论 -
资源管理机制
想要获取资源最关键的是把APK中的资源转为Resources对象。然后根据不同的资源类型调用Resources对象的对应的方法,比如getString获得字符串资源在一个Acitvity或者一个Service中,我们可以直接调用getResources()方法,就可以获得Reousrces对象。因为Acitivity或者Service本质上就是一个Context,getResources(原创 2016-06-22 16:38:44 · 418 阅读 · 0 评论 -
android逆向工程
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/18797493前言Android逆向工程的一些东西,主要包括反编译、Smali、APK打包、签名、反逆向和移动安全等。为什么选择破解哈皮妹-萝莉这是一个意外,是前几天无意中发现了这款应用,想想就装上看看吧,结果发现一些功能需要充钱才能用,所以,就萌生了破解它的想转载 2016-06-22 16:27:06 · 501 阅读 · 0 评论 -
水波纹点击效果的实现
前段时间Android L(android 5.0)出来了,界面上做了一些改动,主要是添加了若干动画和一些新的控件,相信大家对view的点击效果-水波纹很有印象吧,点击一个view,然后一个水波纹就会从点击处扩散开来,本文就来分析这种效果的实现。首先,先说下L上的实现,这种波纹效果,L上提供了一种动画,叫做Reveal效果,其底层是通过拿到view的canvas然后不断刷新view来完成的,这种效转载 2016-07-06 13:14:16 · 4828 阅读 · 1 评论 -
Android启动过程深入解析
当按下Android设备电源键时究竟发生了什么?Android的启动过程是怎么样的?什么是Linux内核?桌面系统linux内核与Android系统linux内核有什么区别?什么是引导装载程序?什么是Zygote?什么是X86以及ARM linux?什么是init.rc?什么是系统服务?当我们想到Android启动过程时,脑海中总是冒出很多疑问。本文将介绍And转载 2016-07-06 13:07:07 · 247 阅读 · 0 评论 -
Ams浅析
一 涉及的主要类及解释1. Ams --- ActivityManagerService.java, android系统服务,Activity管理的服务端,用于管理activity的各种行为,控制activity的生命周期,派发消息事件,低内存管理等等。实现了IBinder接口,可以用于进程间通信。2. ApplicationThread.java, 实现了IBinder接口转载 2016-07-05 18:33:52 · 2065 阅读 · 0 评论 -
android 实现推送方式解决方案
本文介绍在Android中实现推送方式的基础知识及相关解决方案。推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息。这种推送功能是好的一面,但是也会经常看到很多推送过来的垃圾信息,这就让我们感到厌烦了,关于这个我们就不能多说什么了,毕竟很多商家要做广告。本文就是来探讨下Android中实现推送功能的一些解决方案,也转载 2016-07-13 18:45:18 · 373 阅读 · 0 评论 -
android杀死进程
通常我们说缓存就是暂时把没在前台的程序放在内存里,比方说我打开短信应用,然后退回到Launcher打开微信,那么短信就成了所谓的后台程序放在了RAM里,这时候短信应用什么也不会干,就是像一个安静的美男子一样呆在RAM里,不会消耗CPU资源,如果你这时候再打开短信应用,会发现载入速度会比你第一次打开短信应用快很多,因为这是从RAM里直接加载的。一些比较低级的清理软件其实清理的就是这个,实际上很没有必转载 2016-07-13 18:32:23 · 686 阅读 · 0 评论 -
浅析android应用增量升级
背景 随着android应用体积的不断增大,以及应用版本发布的不断更迭,用户的升级成了一个问题,google也意识到不断更新应用对用户流量的损耗,在Google I/O 上提及的 Smart App update,即应用增量升级,或者叫做差分升级的做法,并在新版本的Google Play中得到支持,某天在和群友聊天是扯到这方面的话题,好奇就稍微研究了一下。增量升级的原理转载 2016-07-01 13:19:04 · 270 阅读 · 0 评论 -
Android内存泄露场景分析
原文地址:http://www.cnblogs.com/qianxudetianxia/p/3645106.html大部分内容来自以上原文,有的内容从别的博客中整理而来Context作为最基本的上下文,承载着Activity,Service等最基本组件。当有对象引用到Activity,并不能被回收释放,必将造成大范围的对象无法被回收释放,进而造成内存泄漏。下面针对一些常用场景逐一分析。总之就是任何...原创 2018-07-13 15:53:44 · 519 阅读 · 0 评论