![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 70
Yjnull
丹青之妙,花敛客,日藏光,月遮羞,墨分五彩,化在渐染之间!
展开
-
Activity 组件的启动流程
Activity 组件的启动过程当我们在 Launcher 中点击一个 app 时,发生了什么?1. 参与角色ActivityLauncherAMSInstrumentation:监控应用程序和系统之间的交互操作ActivityThread:ActivityThread 用来描述一个应用程序进程,系统每当启动一个应用程序进程时,都会在该进程里加载一个 ActivityThread ...原创 2020-04-23 00:05:41 · 270 阅读 · 0 评论 -
Android HTTPS 导读
Android HTTPS导读概述:在客户端和服务器之间协商出一套对称秘钥,每次发送信息之前将内容加密,收到之后解密,达到内容的加密传输。写这篇的目的,本来是想研究 Android 的签名机制,其中涉及到数字签名和数字证书,于是索性把 HTTPS 也研究下。本文主要是对其他文章的一个理解注释。对称加密非对称加密消息摘要数字签名数字证书以上这几个概念需要提前理解,可参考这几...原创 2019-10-12 18:58:17 · 174 阅读 · 0 评论 -
四、View 绘制流程——随想(2)
View 绘制流程如需详细了解,请看 [参考] 链接。1. measuremeasure 用于测量 view 的宽 / 高MeasureSpec 模式 具体描述 应用场景 备注 思考 UNSPECIFIED EXACTLY 子视图代下必须在父视图指定的确切尺寸内 match_parent 或 具体数值...原创 2018-07-21 20:38:59 · 144 阅读 · 0 评论 -
十一、我所理解的 Socket
Socket 理解参考: 书籍《TCP / IP 协议族》 http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html0. 前言提起 Socket ,大家都说是什么 套接字、进程间通信、对 TCP / IP 协议进行封装的编程调用接口 balabala 的,说真的,刚接触的时候,真的是一脸...原创 2018-08-05 01:55:57 · 244 阅读 · 0 评论 -
八、Android 热修复了解
Android 热修复0. 如何动态修复 bug1、下发补丁(内含修复号的 class)到用户手机,即让 app 从服务器上下载。(网络传输)2、app 通过某种方式,使补丁中的 class 被 app 调用(本地更新)这里的某种方式,特指 Android 的类加载器,通过类加载器加载这些修复好的 class,覆盖有问题的 class,理论上就能修复 bug 了。1....原创 2018-07-31 17:50:19 · 144 阅读 · 0 评论 -
九、Android 的线程和线程池
Android 的线程和线程池0. 几个概念在操作系统中,线程 是操作系统调度的最小单元,同时线程也是一种受限的系统资源,即线程不可能无限制的产生,并且线程的创建和销毁都会有相应的开销。在 Android 中,从用途上来说,线程分为 主线程(又叫 UI 线程) 和 子线程(又叫工作线程),其中 主线程 主要处理和界面相关的事情,而 子线程 则往往用于执行耗时操作。1. Ha...原创 2018-08-01 20:57:45 · 244 阅读 · 0 评论 -
十二、Retrofit2 源码解析(绝对详细)
Retrofit2 源码解析注意: 本文是对源码的一个跟踪,会对每一行代码有具体的阐述,但是不会介绍 Retrofit 的设计模式。Retrofit:一个 Restful 设计风格的 HTTP 网络请求框架的封装。基于 OkHttp A type-safe HTTP client for Android and Java0. 基本使用1、Retrofit 将我们的 HTT...原创 2018-08-08 00:23:12 · 548 阅读 · 0 评论 -
十、EventBus 源码随想
EventBus 源码随想首先网上已经有不少优秀的EventBus的源码分析文章,这篇只是为了记录自己的理解,毕竟自己亲自写出来才能理解的更深,所以如有不对的地方,还望谅解。参考 https://www.jianshu.com/p/f057c460c77e http://p.codekk.com/blogs/detail/54cfab086c4761e5001b2538 https:...原创 2018-08-03 13:25:05 · 293 阅读 · 0 评论 -
十三、setContentView 流程
大概的流程梳理:原创 2018-08-22 18:01:32 · 137 阅读 · 0 评论 -
AndroidStudio Git 下的代码修改后颜色没变化
Android Studio 3.1.2在 AndroidStudio 中,被 Git 管理的代码在修改后,文件会有明显的颜色变化。 然而我的突然之间没变了,感觉很奇怪,而且困扰了我一两天了,所以在此记录解决方案。原因就我个人而言,应该是之前安装了一个插件 Material Theme UI 。感觉上是这个插件改变了我的一些默认配置,所以导致原本生效的颜色变化,给改没了,当然也可能是...原创 2018-09-13 18:47:40 · 5110 阅读 · 2 评论 -
Android 背景透明度
例:android:background="#A6000000" 表示 65% 的透明度。100% — FF95% — F290% — E685% — D980% — CC75% — BF70% — B365% — A660% — 9955% — 8C50% — 8045% — 7340% — 6635% — 5930% — 4D25% — 4020% — 33...原创 2019-02-21 16:21:35 · 2548 阅读 · 0 评论 -
Android ButterKnife Zelezny 修改变量名前缀
Android ButterKnife Zelezny 这个插件相信不用介绍了。这里说几个注意点。右键 -> Generate 的时候请确保你的鼠标在你的 R.layout.xxx 布局文件上。要不然是不会出现 Generate Butterknife Injections 的。修改变量名。 默认变量是以布局 id 命名的,如果需要以 m 打头,需要在 Settings —> O...原创 2019-02-22 18:29:31 · 676 阅读 · 0 评论 -
六、Android 消息机制
Android 消息机制从开发的角度来讲,Handler 是 Android 消息机制的上层接口。因此我们主要讨论的是 Handler 的运行机制。那么首先回答个问题,为什么要有 Handler 机制?0. 为什么要有 Handler 机制?回答这个问题,首先我们得知道 Handler 有什么作用。作用: Handler 的主要作用是将一个 任务 切换到 Handler 所...原创 2018-07-26 17:56:42 · 133 阅读 · 0 评论 -
七、Binder 机制初探
Binder 机制初探Read The Fucking Source Code由于初学 Binder 机制,所以 Binder 系列只是本人浅薄的理解,如有不正确的地方,还请指正。0. 准备工作首先问自己几个问题: - 为什么要跨进程通信(IPC)? (进程之间是不可以通信的吗) - 怎么做到跨进程通信? (怎样用常规的方式在两个进程之间进行通信呢) - 为什么是 B...原创 2018-07-30 00:05:03 · 323 阅读 · 0 评论 -
三、View 绘制流程 —— 基础(1)
View 绘制流程 —— 基础1. View分类 类别 解释 特点 单一视图 即一个View,如 TextView 不包含子View 视图组 即多个View组成的ViewGroup,如 LinearLayout 包含子View即视图View分为两类: View、ViewGroup2. View类简介View 类是...原创 2018-07-21 01:02:59 · 234 阅读 · 0 评论 -
ListView中存在EditText,弹出键盘后焦点丢失问题。
EditText在ListView中键盘弹出又消失,有效解决方案。在网上搜寻了很多资料,都是差不多的方案,需要对焦点进行记录吖啥啥的,不过试了很多都没有效果,最后在eoe社区中发现了一个有效的解决方案:在Manifest文件中对应的Activity中加入android:windowSoftInputMode=”adjustPan”这个属性即可。<activity android:name=".原创 2017-08-03 20:57:47 · 605 阅读 · 1 评论 -
自定义 View 之——锯齿 Layout
自定义 View实现一个锯齿形状的 ViewGroup。效果 :大体思路:不断的画圆就行了,注意控制间距和所需画圆的数量即可。 当然这里只是提供个思路而已,还可以画三角形什么的,发挥想象就好。 由上图可知,圆的数量 circleNum 比间距 gap 少1,即 gap = circleNum + 1。 那么圆的数量如何确定呢? 首先 w=circleNum∗(ga...原创 2018-03-27 23:25:39 · 427 阅读 · 0 评论 -
报错Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)'
报错原因:Caused by: android.view.InflateException: Binary XML file line #0: Attempt to invoke virtual method ‘boolean java.lang.String.equals(java.lang.Object)’ on a null object reference虽然知道是 xml 出错了...转载 2018-04-30 16:26:01 · 2337 阅读 · 0 评论 -
Android adb shell 查看包名、权限、进程信息
adb 查看手机上应用包名: adb shell pm list packages 查看手机上 apk 文件的安装位置: adb shell pm list packages -f查看危险权限:adb shell pm list permissions -d -g查看进程信息:adb shell ps 或者 adb shell ps | grep 包名...原创 2018-04-25 14:38:57 · 21713 阅读 · 0 评论 -
java.lang.RuntimeException: Unable to get provider cn.jpush.android.service.DataProvider
Android Studio 3.1.2 报错:java.lang.RuntimeException: Unable to get provider cn.jpush.android.service.DataProvider: java.lang.ClassNotFoundException: Didn’t find class “cn.jpush.android.service.DataP...原创 2018-05-17 18:39:13 · 4522 阅读 · 2 评论 -
RadioButton 右上角添加背景图,不需要自定义RadioGroup
实在想不出什么标题,所以用 BB 代替了,这样格式好看些而已 ~瞎BB1做项目时遇到一个效果图,由于是单选,所以用到了RadioButton,RadioButton 虽然有drawableLeft、drawableRight 等属性,但是没办法实现在左上角、右上角等角落加上图片吖,而且我只是需要选中时显示这个对勾而已,网上一大堆自定义RadioGroup是什么鬼,就加个图片而已,需要这么麻...原创 2018-05-29 15:12:28 · 1205 阅读 · 0 评论 -
一. Activity 生命周期和启动模式
一. activity生命周期按照惯例,先上张 Activity 生命周期图回答一个问题: Activity是什么? Activity表示为具有用户界面的单一屏幕,可理解为”界面”。正常情况下,除了Window、Dialog和Toast,我们能见到的界面的确只有Activity。1.1 activity生命周期分析1.1.1 生命周期概述onCreate () 必...原创 2018-07-18 23:43:53 · 284 阅读 · 0 评论 -
五、Jvm系列(1)——内存区域
五、Jvm系列(1)——内存区域1. Java 虚拟机运行时数据区域Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。2. 各区域解释详细模型图:2.1 程序计数器说明:程序计数器是一块较小的内存空间,它可以看作当前线程所执行的字节码的行号指示器。由于 Java 虚拟机的多线程是通过 线程 轮流切换 并 分配处理...原创 2018-07-24 22:50:37 · 140 阅读 · 0 评论 -
五、Jvm系列(2)——GC 相关
五、Jvm系列(2)——GC 相关Java 与 C++ 之间有一堵由 内存动态分配和垃圾收集技术 所围成的 “高墙”,墙外面的人想进去,墙里面的人却想出来。说起 垃圾收集(Garbage Collection, GC),我们需要思考 3件事情。 - 哪些内存需要回收? - 什么时候回收? - 如何回收?1. 哪些内存需要回收?程序计数器、虚拟机栈、本地方法栈 3个区域 ...原创 2018-07-24 22:54:38 · 131 阅读 · 0 评论 -
二、View 事件分发机制
View 事件分发机制本文是自己看过一些资料后的总结,如要详细了解事件分发机制,请看[参考]内的文章。一、事件分发基础认知1.1 当我们再谈论事件分发时,到底再谈论什么?当用户触摸屏幕时,会产生点击事件 (Touch 事件) 而 Touch 事件的相关细节(发生触摸的位置、时间等)都被封装成了 MotionEvent 对象 所以当我们讨论事件分发时,实际是在讨论,是谁...原创 2018-07-20 00:21:21 · 174 阅读 · 0 评论 -
五、Jvm系列(3)——类加载机制
五、Jvm系列(3)——类加载机制Java 与 C++ 之间有一堵由 内存动态分配和垃圾收集技术 所围成的 “高墙”,墙外面的人想进去,墙里面的人却想出来。类的生命周期如下: 上图是类的 生命周期。Java 虚拟机中 类加载 的全过程 是* 加载、验证、准备、解析 和 初始化* 这 5 个阶段所执行的具体动作。在这7个阶段中,加载、验证、准备、初始化和卸载 这5个阶段的顺序是确...原创 2018-07-25 19:27:09 · 171 阅读 · 0 评论 -
打开或关闭Activity的动画
使用overridePendingTransition(int enterAnim, int exitAnim)方法enterAnim:新Activity的打开动画 exitAnim:原Activity的关闭动画该方法必须在startActivity()或finish()之后调用<rotate /> <alpha /> <scale /> <translate /> 旋转原创 2016-04-27 10:07:57 · 544 阅读 · 2 评论