![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
文章平均质量分 70
srp123
这个作者很懒,什么都没留下…
展开
-
android消息机制
Android消息机制Handler深入理解-云海天教程目录概述 Handler的使用 Handler架构 Handler的运行流程 源码分析 在子线程创建Handler 主线程的Looper Looper Handler 分发消息 总结 概述Handler是Android消息机制的上层接口。通过它可以轻松地将一个任务切换到Handler所在的线程中去执行。通常情况下,Handler的使用场景就是更新UI。Handler的使用在子线程中,原创 2021-12-20 10:13:23 · 77 阅读 · 0 评论 -
android性能之二:耗电问题
1、 电量问题Android系统上App的电量消耗主要由cpu、wakelock、数据传输(流量和wifi)、wifi运行、gps、other senior组成,而耗电异常也是由于这几个模块的使用不当。1.1 CPU时间片优化当检测到CPU时间片消耗异常时,需要使用TraceView,获取进程执行信息,定位CPU占用率异常的问题。1.2 网络传输通常情况下,使用3G移动网络原创 2018-02-07 15:20:24 · 832 阅读 · 0 评论 -
android性能值之四:卡顿问题
1、GPU渲染2、启动加速3、布局优化4、主线程耗时操作 异步加载5、运算效率6、ANR问题参考:https://www.kancloud.cn/kancloud/android-performance/53234原创 2018-02-07 15:19:30 · 133 阅读 · 0 评论 -
Android性能之一续:内存泄露的分析、处理工具
上一篇http://blog.csdn.net/srp123/article/details/78667872介绍了android内存泄露的原理,这一篇介绍Android内存泄露的分析、处理。一、检测内存泄露1、adb命令获取内存使用情况通过命令行adb shell dumpsys meminfo packagename查看内存详细占用情况:关键字段:原创 2018-02-06 18:14:20 · 344 阅读 · 0 评论 -
android性能之一:内存泄露、内存溢出的区别及原理分析
android内存泄露、内存溢出android项目开发中,内存泄露是衡量代码质量的很重要的一个维度。本文结合项目开发中实践经验,从以下方面对内存泄露进行分析。 - android(java)内存管理 - 内存泄露和内存溢出的区别 - 内存泄露的原因 - 常见内存泄露问题汇总 - *内存泄露的分析方法和常用工具 - 小结一、android(java)内存管理要了解内存原创 2017-11-29 17:30:39 · 1609 阅读 · 0 评论 -
View框架的消息派发过程及绘制原理详述
view的消息派发:按键消息:wms首选处理home键等系统级信息,底层回调viewroot中的inputhandler的方法,然后调用viewroot的dilverkeyevent(),该函数中首先在输入法之前可以拦截处理消息,然后派发给输入法窗口(前提是输入法窗口存在),之后就派发给应用根试图了(应用的根视图是phonewindow的decorview,非应用窗口的根试图是viewgroup的...原创 2018-02-10 18:30:10 · 214 阅读 · 0 评论 -
APP(编译、混淆、签名)打包、安装、运行
APP(编译、混淆、签名)打包、安装、运行一、打包过程:1. 通过aapt打包res资源文件,生成R.java、resources.arsc和res文件 2. 处理.aidl文件,生成对应的Java接口文件 3. 通过Java Compiler编译R.java、Java接口文件、Java源文件,生成.class文件 4. 通过dex命令,将.class文件和第三方库中的.class文件处理生成cl...原创 2018-02-10 18:30:45 · 1511 阅读 · 0 评论 -
Android四大组件
service:onCreate: 执行startService方法时,如果Service没有运行的时候会创建该Service并执行Service的onCreate回调方法;如果Service已经处于运行中,那么执行startService方法不会执行Service的onCreate方法。也就是说如果多次执行了Context的startService方法启动Service,Service方法的o...原创 2018-02-10 15:26:48 · 177 阅读 · 0 评论 -
android的进程间通信aidl
参考:http://blog.csdn.net/hitlion2008/article/details/9824009受限于Android本身对AIDL的设计,利用AIDL传输的数据大小不得大于1MB,否则会报TransactionTooLargeException,目前代码里暂时没有考虑该问题的解决方案。aidl分层结构:aidl只能传基本数据类型,其他类型可以通过实现parcelable。Ja...原创 2018-02-10 18:30:35 · 406 阅读 · 0 评论 -
android窗口管理
window是一个雷,实现类是phonewindow。窗口由两部分构成:描述该窗口的windowstate和窗口对应的surface。WMS是在systemserver中启动VMthread创建的,运行在该线程中。android窗口创建过程:计算窗口大小、计算窗口的可视状态,通知surfaceFlinger重绘。android窗口删除过程:android窗口切换过程:...原创 2018-02-10 18:30:21 · 310 阅读 · 0 评论 -
AMS原理分析
一、AMS的主要作用:1、统一调度Activity(1)AMS中的重要数据类:ProcessReccord:保存该进程中包含的APK信息、内存状态信息用于内存回收、组件列表ActivityRecord:binder类可用于IPC调用(此处为WMS中调用),保存所有Acitivity信息,包括基本属性信息(包名、进程名、文件路径、图标主题等)和运行状态信息(idle、stop、finishing等)...原创 2018-02-10 18:29:59 · 4072 阅读 · 0 评论 -
android性能之三:网络通信
1、 网络优化网络优化主要包括4个方面方面:1. 速度;2. 成功率;3. 流量4、耗电1.1 Gzip压缩HTTP协议上的Gzip编码是一种用来改进WEB应用程序性能的技术,用来减少传输数据量大小,减少传输数据量大小有两个明显的好处:可以减少流量消耗;可以减少传输的时间。1.2 IP直连与HttpDns;DNS解析的失败率占联网失败中很大一种,而且首次域名解析一般需要原创 2018-02-07 15:20:51 · 234 阅读 · 0 评论 -
android性能之五:APK瘦身
1.1 Android Studio Analyze APKAndroid Studio 2.2之后有一个功能Analyze APK,方便简单,功能还是Google自带的靠谱;查看apk中任意文件的大小,得到一个直观的认识;了解Dex文件的组成,查看使用那些开源库等;查看二进制文件(如AndroidMainfest.xml等);Apk的比较,便于发现两个版本之间的区别。Analyz原创 2018-02-07 15:39:19 · 802 阅读 · 0 评论 -
玩转Leakcanary内存泄露分析
Leakcanary是square推出的内存泄露分析工具,使用很简单,可谓“傻瓜式”应用。但其内部原理实现直的深究学习,今天我们就层层剖析其使用方式、源码实现,了解一下大牛是如何写代码的。前期知识点准备:内存泄漏 GC回收原理 java四种引用等等。一、使用方法1、gradle中添加依赖,目前最新版本为1.6.1debugImplementation 'com.squareu...原创 2018-08-28 15:52:07 · 1346 阅读 · 0 评论 -
android异步消息处理线程
普通的线程,在start执行run方法完毕,则线程自动结束。异步消息处理线程是指,在线程中调用looper.loop方法创建一个循环体,该方法会循环取出消息队列MessageQueue中的消息进行处理(默认先进先出),取出的消息在handler的handlemessage中处理。所以在该线程的Run方法中,首先调用looper.perpare方法new一个looper对象,looper对象中会创建...原创 2018-01-20 15:31:33 · 244 阅读 · 0 评论 -
android常用控件及自定义控件方式
android常用控件及自定义控件方式原创 2018-02-23 13:56:49 · 199 阅读 · 0 评论 -
json解析
json解析原创 2018-02-23 13:56:25 · 150 阅读 · 0 评论 -
android图片获取、编辑、上传、下载、缓存、显示过程实现
android图片获取、编辑、上传、下载、缓存、显示过程实现原创 2018-02-23 13:56:15 · 221 阅读 · 0 评论 -
cookie、session原理
cookie、session原理原创 2018-02-23 13:49:24 · 166 阅读 · 0 评论 -
网络编程分层模型
网络分层:为了减少网络设计的复杂性,绝大多数网络采用分层设计方法。所谓分层设计方法,就是按照信息的流动过程将网络的整体功能分解为一个个的功能层,不同机器上的同等功能层之间采用相同的协议,同一机器上的相邻功能层之间通过接口进行信息传递。开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)转载 2018-02-07 16:10:08 · 1075 阅读 · 0 评论 -
android资源访问机制
android资源定义分为:属性的定义和属性值的定义。属性的定义文件:res/values/attr.xml,该文件中定义的属性在应用程序的范围内必须是唯一的。值的定义:String,color等基本类型,Drawable、layout、style等。xml文件解析:Attribute,TypedArray。Framework资源打包成framework-res.apk在zygote中被加载然后才...原创 2018-02-10 17:14:38 · 174 阅读 · 0 评论 -
PMS程序包管理机制
PMS程序包管理机制:1、intent匹配,Intent是一个消息传递对象。2、权限检查3、提供安装、删除应用程序的接口。分层结构:应用程序层,PMS服务器,文件层。...原创 2018-02-10 18:29:50 · 262 阅读 · 0 评论 -
auth2.0协议及第三方授权登录实现
参考:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html原创 2018-02-10 18:29:46 · 2859 阅读 · 0 评论 -
ADT中add jars,add external jars,add libraries,libs的区别
android项目中引用第三方jar的方式,add jars,add external jars,都是引用jar的方式,jar会参与编译,但不会打包到APK中,区别是前者引用的是工程中目录中的jar,后者可引用外部文件系统目录中的jar,这两种引用的jar都会自动放在Referenced libraries中,add libraries则是把一系列的jar放在自己命名的libraries中,一般是原创 2018-01-25 11:22:43 · 543 阅读 · 0 评论 -
android广播
==Android中的广播使用了设计模式中的观察者模式:基于消息的发布/订阅事件模型,不过,同时利用消息队列+Handler机制实现广播的线性化(保证广播不会丢失)==模型中有3个角色:消息订阅者(广播接收者)消息发布者(广播发布者)消息中心(AMS,即Activity Manager Service)广播接收者 通过 Binder机制在 AMS 注册广播发送者 通过 Binder 机制向 AMS...原创 2018-02-09 16:49:02 · 178 阅读 · 0 评论 -
android三级缓存
android三级缓存原创 2018-02-09 21:07:50 · 179 阅读 · 0 评论 -
context的类型及相关类和类关系
context的类型及相关类和类关系context是抽象类,contextwrapper继承context,service是抽象类继承contextwrapper,activity继承contextthemewrapper,contextthemewrapper继承contextwrapper,...原创 2018-02-09 20:53:23 · 2171 阅读 · 0 评论 -
trace文件分析ANR问题
转自:https://zhuanlan.zhihu.com/p/22272957定义主线程在特定的时间内没有做完特定的事情常见的场景 A.input事件超过5S没有处理完成 B.service executing 超时(bind,create,start,unbind等等),前台20s,后台200s C.广播处理超时,前台10S,后台转载 2017-12-07 16:42:45 · 4429 阅读 · 0 评论