android
文章平均质量分 89
一个具有村长气质的男人
这个作者很懒,什么都没留下…
展开
-
Android Fragment生命周期
要了解Fragment,首先需要了解它的生命周期,同时与Activity的生命周期的关联也是非常重要的。Fragment的生命周期imageFragment和Activity的生命周期关联以上内容出处链接:https://www.jianshu.com/p/0a4b3825ff9f以下内容出处链接:https://www.cnblogs.com/zhinengfeiyu/p/5384312.html刚打开Activity:Fragment onAttach > F转载 2020-11-26 15:26:49 · 142 阅读 · 0 评论 -
Fragment是如何进行事务管理的
Fragment是依附于Activity,所以Fragment的生命周期和Activity的生命周期息息相关,在每个Activity的生命周期中最终都会调用FragmentManagerImpl.dispatchXXX()通知,然后调用到FragmentManagerImpl.dispatchStateChange(int nextState),Fragment有多个状态值来展示什么周期所处的状态static final int INITIALIZING = 0; // Not yet .转载 2020-11-26 15:20:04 · 385 阅读 · 0 评论 -
FragmentTransaction的提交方法
FragmentTransaction的提交方法support library的FragmentTransaction现在提供了四种不同的方法来commit一个transaction:commit()commitAllowingStateLoss()commitNow()commitNowAllowingStateLoss()这篇文章分析了这四个方法的不同.commit() vs commitAllowingStateLoss()用commit()提交有时候会遇到Il...转载 2020-11-26 15:18:00 · 617 阅读 · 0 评论 -
Android系统启动过程分析
Android系统架构一、APPLACTIONS(应用程序层)该层提供一些核心应用程序包,例如主界面,浏览器,电子邮件、联系人,短信、日历、地图等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序。二、APPLANCTION FRAMEWORK(应用程序框架层)该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。应用程序框架层包括 Activity Manager活动管理器、Window Manager窗口管理器、Content Providers内容提供者转载 2020-11-26 10:13:34 · 214 阅读 · 0 评论 -
【Android性能优化】归纳总结
Android性能我分了几个部份来总结:APP部份我们的手机中会安装有各种各样的APP,有些APP在研发的时候由于开发者的经验,习惯等各种因素,运行久了就会变得越来越慢,甚至极大的增加你手机的耗电所以,作为一个开发者有必要对性能这块深入了解,研发出来的APP更加安全,体验更流畅,耗电低,流量低。APP部分是个人开发者研发APP时,需要注意以下几个方面 一. UI绘制U界面布局是我们大多都会忽略的问题,在开发中往往是怎么方便怎么来,其实复杂的布局会大大降低APP的效率,反应速度,...转载 2020-11-25 10:57:53 · 140 阅读 · 0 评论 -
Android里的Dalvik、ART、JIT、AOT
Android里的Dalvik、ART、JIT、AOT有什么关系? JIT,Just-in-time,即时编译,边运行边编译;AOT,Ahead Of Time,提前编译,指运行前编译。区别:这两种编译方式的主要区别在于是否在“运行时”进行编译优劣JIT优点: 可以根据当前硬件情况实时编译生成最优机器指令(ps. AOT也可以做到,在用户使用时使用字节码根据机器情况在做一次编译) 可以根据当前程序的运行情况生成最优的机器指令序列 当程序需要支持动态链接时,只能使用JIT.转载 2020-11-25 10:44:09 · 294 阅读 · 0 评论 -
EventBus 原理解析
EventBus 原理解析EventBus是一款在 Android 开发中使用的发布/订阅事件总线框架,基于观察者模式,将事件的接收者和发送者分开,简化了组件之间的通信,使用简单、效率高、体积小!下边是官方的 EventBus 原理图:EventBus 的用法可以参考官网,这里不做过多的说明。本文主要是从 EventBus 使用的方式入手,来分析 EventBus 背后的实现原理,以下内容基于eventbus:3.1.1版本,主要包括如下几个方面的内容:Subscribe注解 注册..转载 2020-10-30 15:09:28 · 229 阅读 · 0 评论 -
apk打包流程
apk打包流程 打包资源文件,生成R.java文件 输入:res文件,Assets文件,AndroidManifest.xml文件,Android基础类库(Android.jar文件) 输出:R.java,resources.arsc 工具:aapt 工具位置:SDK\build-tools\29.0.0\aapt.exe 处理aidl文件,生成相应java文件 输入:源码文件,aidl文件,framework.aidl文件 输出:对应的.java文件 工具:aidl工具 工具位置:SDK\转载 2020-10-30 11:44:58 · 226 阅读 · 0 评论 -
retrofit2.adapter.rxjava2.HttpException: HTTP 403 Forbidden
某些API应该是服务器设置了限制,使得手机端okhttp作为 http客户端时,获取数据,服务器返回HTTP 403禁止访问。服务器禁止访问了,因为okhttp并不是真正的原生的http请求,它在header中并没有真正的User-Agent,而是“okhttp/版本号”。如果是单纯的okHttp请求,不加Retrofit的Request request = new Request.Builder().url(url) .removeHe...翻译 2020-10-29 14:33:11 · 2016 阅读 · 0 评论 -
Handler相关的原理机制形象的描述
Handler相关的原理机制形象的描述为以下情景:Handler:快递员(属于某个快递公司的职员) Message:包裹(可以放置很多东西的箱子) MessageQueue:快递分拣中心(分拣快递的传送带) Looper:快递公司(具有处理包裹去向的管理中心)情景分析:在子线程中更新主线程的UI其中的原理机制可以形象的理解为:某天,你想给朋友寄一件礼物,首先你拿个箱子装好礼物并包裹好,下单叫了某家的快递员上门取件,快递员揽收你的包裹后,会将包裹送往快递分拣中心,等待配送车送出你的包裹。等原创 2020-10-28 13:40:23 · 140 阅读 · 0 评论 -
View和SurfaceView的区别
View和SurfaceView的区别:View适用主动更新,SurfaceView 适用被动更新,如频繁的刷新View在UI线程更新,在非UI线程更新会报错,当在主线程更新view时如果耗时过长也会出错, SurfaceView在子线程刷新不会阻塞主线程,适用于界面频繁更新、对帧率要求较高的情况。SurfaceView可以控制刷新频率。SurfaceView底层利用双缓存机制,绘图时不会出现闪烁问题。双缓冲技术是游戏开发中的一个重要的技术,主要是为了解决 反复局部刷屏带来的闪烁。游戏,视频等画原创 2020-10-28 11:57:01 · 638 阅读 · 0 评论 -
详解 TCP 三次握手、四次挥手
详解 TCP 三次握手、四次挥手,附带精美图解和超高频面试题转载自https://segmentfault.com/a/1190000022410446一、TCP 报文段简介在介绍三次握手和四次挥手之前,先来简单认识一下 TCP 报文段的结构TCP 首部包含以下内容,请留意其中的控制位,在三次握手和四次挥手过程中会频繁出现:端口号 (Source Port and Destination Port):每个 TCP 报文段都包含源端和目的端的端口号,用于寻找发送端和接收端应用进程。这两个值加转载 2020-10-28 10:37:43 · 215 阅读 · 0 评论 -
Kotlin 单例模式
class MyManager private constructor() { companion object { val instance: MyManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { MyManager () } }}原创 2020-10-26 16:02:31 · 83 阅读 · 0 评论 -
Android图文混排,以及居中处理
//图文混排String text = "商家折扣(-10%)" + " ";SpannableStringBuilder spannable = new SpannableStringBuilder(text);CenterImageSpan imageSpan = new CenterImageSpan(MyApplication.getInstance().getApplicatio...原创 2019-07-05 11:42:53 · 484 阅读 · 0 评论