Potato icon indicating copy to clipboard operation
Potato copied to clipboard

Read the fucking source code for the Android interview

Results 73 Potato issues
Sort by recently updated
recently updated
newest added

# AAC: LifeCycle [TOC] 这篇文章对 Android Architecture Component 中的 LifeCycle 进行源码分析,看其怎么对 Activity 的生命周期进行处理。 ## LifeCycle 基本认识 这里先从 ComponentActivity 开始看起,作为比较基础的类,google 在推出 AAC 框架时就慢慢对基础类做了修改: ```java public class ComponentActivity extends androidx.core.app.ComponentActivity implements LifecycleOwner,...

SOURCE CODE

# Interaction between Native and js [TOC] 这篇文章介绍 Android 与 js 的交互。由于目前很少有纯 native 的应用,并且电商类 APP 都含有大量的网页,所以这块知识属于必须掌握的。 ## 交互方式概览 Android 和 js 交互实际上是通过 WebView 互相调用方法: * Android 调用 js 的代码 *...

USAGE

# Arouter [TOC] ## 需求背景 当一个 App 开发随着迭代而变得复杂时,多模块开发就显的很有必要,multimodule。 ### Android 原生方案的不足 原生路由方案一般是通过显式 intent 和隐式 intent 两种方式实现,均存在不足: 1. 显式需要直接持有对应 class,从而导致强依赖关系,提高了耦合度。 2. 隐式由于 action 定义在 Manifest,扩展较差;另一方面不适合协作。 3. 由于 startActivity() 失败后无法降级,直接异常,不可取。 ### 自定义路由框架的适用场景...

DOING

# Https [TOC] 这篇文章简单介绍一下 https 的工作原理和相关的加密过程 ## Https 工作原理 https 在传输数据之前需要客户端和服务端之间进行一次握手,在握手过程中确定双方加密传输数据的密码信息。TLS/SSL 协议中使用了非对称加密,对称加密和 hash 算法。具体的过程如下: 1. 浏览器将自己支持的一套加密规则 发送给服务器 2. 服务器选出一组加密算法和 Hash 算法,并将自己的身份信息以证书的形式发回浏览器。其证书中包含了网站地址,加密公钥,以及证书的颁发机构等信息 3. 浏览器获得证书之后: 1. 验证证书的合法性(颁发证书的机构是否合法,以及包含的地址是否匹配正在访问的地址)。如果证书有效,那么浏览器会显示可信锁头🔒标志 2. 确认证书有效之后,或者用户接受不受信任的证书,浏览器会生成一串随机数字,并用证书的公钥加密,作为以后通信对称加密的密钥。 3. 使用约定好的 hash...

DOING

# Retrofit > A type-safe HTTP client for Android and Java 基于 version 2.5.0 进行分析。 ## Demo [官方使用文档](https://square.github.io/retrofit/) Retrofit 将 Http API 转换为 java 接口,因此可以做如下定义 ```java public interface GitHubService {...

DOING
SOURCE CODE

# Glide:The loading process of the main flow [TOC] 分析来自 glide 4.8.0, 官方 [使用文档](http://bumptech.github.io/glide/) >Glide是一个快速高效的Android图片加载库,注重于平滑的滚动。 > >Glide 支持拉取,解码和展示视频快照,图片,和GIF动画。 > >```java >Glide.with(fragment) > .load(url) > .into(imageView); >``` 上面是官网介绍的最简单的用法,本文章就对这个主流程做个简单分析。 ## .with() 首先来看...

SOURCE CODE

# Activity: Lifecycle and ActivityThread [TOC] 之前说了 App 的大概启动流程,在 Launcher 进程也是通过 startActivity 方法启动 Activity。经过一系列进程创建,Application 初始化之后,MainActivity.onCreate() 方法将会执行,这篇文章就从开始入手分析。 ## onCreate 过程 ### ActivityThread.handleLaunchActivity 启动 Activity 的整个过程最终都会调用该方法,部分代码和注释如下: ```java // 当Server 请求启动或者重启时,实现 Activity 的启动,...

SOURCE CODE

# HashMap:Core source code analysis [TOC] hashmap 作为 java 和 Android 开发中面试的必问问题,很有必要对其有一个详细的了解。 这篇文章将会从源码角度,对其存储结构,功能实现,扩容优化等进行分析。 分析版本 java 1.8.0 ## 基本使用 在 hashmap 源文件前的注释中,可以了解的信息如下: 1. 实现了 map 接口,提供了 map 相关的操作,并支持 key, value 都为...

SOURCE CODE

# Logger:Powerful logging library in Android [TOC] 这篇文章介绍 Android 中常用的日志功能。 日志上在开发中常用的一个工具,可以打印任何需要的信息来辅助开发,系统提供的日志模块在这里不做过多叙述;下面会分别从基本使用和源码去介绍一个强大的日志工具。 ## 基本用法 这个日志的地址和基本使用方法在其开源库主页都有基本介绍:[logger](https://github.com/orhanobut/logger). 总结一下对于使用者来说,优点在哪: 1. 支持打印当前线程和当前方法 2. 支持 json,xml, list, map, set 等不同的格式输出 3. 自定义输出到文件,持久化保存日志文件。 ### 使用 这里还有一个常见的**开发技巧**:对于第三方库来说,尽量自己再包装一层,方便以后替换。 1....

USAGE
SOURCE CODE