![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android 基础知识整理
文章平均质量分 82
zhouzhihao_07
在郑州发展android,需要合作的联系吧。(有创意创业的,投资的都可以合作)
展开
-
Android 内存原理详解以及优化(二)
这个其实和单例的原理是一样的,由于静态对象 test 的生命周期和整个应用的生命周期一致,而非静态内部类 Test 持有外部类 MainActivity 的引用,导致 MainActivity 退出的时候不能被回收,从而造成内存泄漏,解决的方法也很简单,把 test 改成非静态,这样 test 的生命周期和 MainActivity 是一样的了,就避免了内存泄漏。3.1 对于大图片加载的时候,会内存溢出。知道了内存泄漏的根本原因,再分析为什么会出现内存泄漏就很简单了,下面就针对一些常见的内存泄漏进行分析。原创 2024-07-02 16:11:46 · 732 阅读 · 0 评论 -
Android 各个版本名称和特性总结(持续更新)
我们就从Android 5.0开始吧,因为从写文时起,大部分手机都到5.0了。目录。原创 2024-06-04 21:39:49 · 796 阅读 · 0 评论 -
Android 四大组件(三)Broadcast 广播 详解
官网给的定义很准确:Android 应用与 Android 系统和其他 Android 应用之间可以相互收发广播消息,这与发布-订阅设计模式相似。作为开发者经常用到广播的场景一:按注册方式分为:静态注册广播先自定义 广播接受者 继承BroadcastReceiver 类,然后重新onReceive方法(做接收到广播的逻辑操作)/** * description: * * @author zhouzhihao * @time 2020/12/7 0007 */public c..原创 2020-12-07 22:39:34 · 671 阅读 · 0 评论 -
Kotlin 知识点小结
supervisorScope 表示主从作用域,会继承父协程的上下文,它的特点就是子协程的异常不会影响父协程,内部的 子协程挂掉 不会影响外部的父协程和兄弟协程的继续运行,它就像一道防火墙,隔离了异常,保证程序健壮,但是如果外部协程挂掉还是可以取消子协程的,即 单向传播。coroutineScope 表示 协同作用域, 内部的协程 出现异常 会向外部传播,子协程未捕获的异常会向上传递给父协程, 子协程 可以挂掉外部协程 , 外部协程挂掉也会挂掉子协程,即 双向传播。原创 2023-10-20 12:11:49 · 180 阅读 · 0 评论 -
Android类加载机制
通常我们在手机看到,app即使热修复了,最后还是要全量更新版本,因为一个是安装包热修复后变大,还有热修复之后的应用性能,稳定兼容性上还是不如整体包安装的应用。下面这个图还是比较好表达了类加载流程,但如果不看我红色画的线,就会感觉有点乱,需要注意是采用的是双亲委派模式,class加载要先一层层询问是否加载过没有就传到它的上层加载,加载不到的开始往下传,是否可以加载,最后都没能加载的not found。要说Android的类加载机制 ,就离不开 类加载器ClassLoader,它是一个抽象接口。原创 2023-08-22 17:57:15 · 769 阅读 · 0 评论 -
Java反射机制,动态代理,hook以及在Retrofit源码中的应用
Java的反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。然后我们回过头来看反射机制是 基础,动态代理里面也是用反射来实现的,动态代理对类里面的所有方法统一动态加入操作代码,java使用更多是对接口的,是生成了你想往里面塞的代码,hook把hook对象勾出来,换成自己想塞进去的,是一种手法。1.1.3使用对象.getClass() 方法,返回对象所属的类的 Class 对象。原创 2023-08-11 11:00:21 · 691 阅读 · 0 评论 -
Android Anr traces.txt 最全最完整说明文档
欢迎各位评论补充和指正,还有很多项还没确定含义。----- pid 461 at 2022-11-03 07:12:55 -----// pid 进程id 进程461在 2022-11-03 07:12:55的时候Cmd line: system_server//出问题的程序名称 是system_serverBuild fingerprint: ‘Android/rk3399_all/rk3399_all:7.1.2/NHG47K/server03271642:userdebug/test-keys原创 2022-11-11 15:44:10 · 890 阅读 · 0 评论 -
Android动画详解
为什么要引入属性动画,上面说说的动画,是针对view,这就留下了场景的局限性,很多场景我们都是要针对数值,或者是一个对象,不局限于view。我们先看看使用 ,另外多一句,属性动画是可以代替上面我们所说的传统动画。有4种补间动画:放大缩小scale ,旋转 rotate ,平移 translate,透明度动画alpha。Android动画大方向上分为:View 视图动画(里面又分为补间动画和帧动画)和属性动画。ValueAnimator 的使用,也是可以设置listen监听,从值的变化来驱动动画。...原创 2022-08-17 11:51:19 · 311 阅读 · 0 评论 -
Android View 加载源码详解
表述一下:一个触摸事件触发,先来到Actvity的DispatchTouchEvent 方法,Activity接着去询问ViewGroup的dispatchTouchEnvent方法,你告诉我,ViewGroup调用onInterceptouchEvent问自己要不要拦截处理,我不拦截,好,那我问我的子view,调用view的dispachTouchEvent方法,view调用onTouchEvent()方法,到底了,开始往上反。还有个问题就是大家都不干的时候,为什么Activity 会来两边。......原创 2022-08-16 13:33:04 · 1450 阅读 · 0 评论 -
Paging3的使用总结
初始的使用就主要是PagingDataAdapter的使用了,和ListAdapter 相比,它支持分页。DiffUtils这两个方法有助于 DiffUtil 更准确地计算出数据的变化,以便更有效地更新 RecyclerView 的视图。例如,如果 areItemsTheSame 返回 true,那么这个项目不需要移动位置;如果 areContentTheSame 返回 false,那么这个项目的内容需要更新(在你显示的内容不是全部item属性的时候,你只要保证可见的部分属性一样就可以偷懒的少刷新)。原创 2022-04-11 14:27:34 · 1014 阅读 · 0 评论 -
RecyclerView 实测小结
即使要变换的数据在不可见的区域,还是只调用可见的item 的onBindViewHolder。由此引出DiffUtil。在这之前,我一直在思考一个问题,为什么要弄清楚它的缓存机制,我觉得是为了更好的使用它,而你真正说会用到这种3层的缓存结构去应用到其他地方去,不说碰不到吧,极难,达到这种程度的价值从这个实际意义上来说,就不大了,所以达到目的为止,别上头。本来想按照源码写一个出来,写着写着就觉得坏了,写不下去了,全部弄懂它,要耗死我了,哪有那么多时间,就好像流沙,沼泽。如果想更深的了解它,那这个水就深了。原创 2022-02-19 17:29:15 · 1221 阅读 · 0 评论 -
Android Permission 权限详解
其实官方文档权限这部分解释的挺清楚的,官方文档也都有能说清的时候和说不清的时候,但不论是否易懂,官方文档都是最权威的,喜欢的童鞋可以查看官方文档:https://developer.android.google.cn/guide/topics/permissions/overview如果有童鞋不喜欢看很长的官方文档就看我总结的吧:1.Android的权限改革的一个很明显的分界线是Android 6.0(Api=23),在这之前,只需要在AndroidManifest.xml声明应用需要的权限(需要提原创 2020-12-06 17:06:54 · 4728 阅读 · 0 评论 -
Android Sqlite数据库详解
在整理ContentProvider是知识点之前要先整理Sqlite数据库的知识,因为ContentProvider中要使用到数据库。步入正题:Sqlite是起源是一艘军舰上,一个数据库程序员觉得潜艇正在使用的数据库太强大的,每次更新升级操作复杂,耗时,效率不高。然后就想优化,目标就是设计出一个简单,操作简单,独立性强的数据库,因为也是开源的,之后就在开源社区流行起来,很多开发者都开始使用sqlite数据库。定义:Sqlite是是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,是为了嵌入式系原创 2020-12-05 16:32:54 · 5554 阅读 · 4 评论 -
Android 四大组件(二)Service详解
作用:提供 需在后台长期运行的服务, 特点:无用户界面、在后台运行、生命周期长 1.Service有两种启动方式:Context.startService()在Activity 中 startService(new Intent(this,StartTypeService.class));intent里面可以携带数据传递给service开始服务在Activity onDestory 的时候,服务也不销毁。需要在Activity OnDestory 手...原创 2020-12-03 16:06:47 · 263 阅读 · 0 评论 -
Android 四大组件(一)Activity详解
Android四大基本组件分别是Activity 活动(界面),Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器,他们都在AndroidManifest.xml 中,都有生命周期。1.Activity 活动界面的生命周期 onCreate() onStrat() onResume() onPurse() onStop() onDistory()......原创 2020-12-01 19:14:07 · 2154 阅读 · 1 评论 -
初识android系统,五层系统架构详解
有时间了,就整理一下这几年下来android的基础知识,希望可以帮到需要的人和影响到一些开发者,然后也希望自己也能从中有一个更深的理解,android的一个很好的理念就是开源,但好像最新几年开发者不像前几年在网上开源自己,整个氛围感觉不太好,一个很大的感觉就是以前开发的问题都能再网上找到解决方案,现在很难找到了,或许是大家都没有时间,或许是知识付费的体系问题。如果有说的不对的地方,请评论上指正。Android 是一套基于linux内核的开源系统,主要应用于移动端,在移动互联网时代,应运而生。要详细了解它原创 2020-11-29 20:42:29 · 5611 阅读 · 1 评论