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

# Android Adb Shell Command Record [TOC] 本篇文章用于收集一些 Android 开发中常用的 Adb 命令。 ### 当前 Activity 在接触一个陌生项目中,经常需要知道当前的 Activity 的信息。那么可以使用命令: `adb shell dumpsys activity top`, 可以的输出内容如下:(内容很多) ```kotlin SW-MacBook-Pro:other zp$ adb shell dumpsys...

DOING

#Android 高级面试题目和答案 参考:https://github.com/jinguangyue/Android-Advanced-Interview ## Handler 相关知识,面试必问! 常问的点: Handler Looper Message 关系是什么? Messagequeue 的数据结构是什么?为什么要用这个数据结构? 如何在子线程中创建 Handler? Handler post 方法原理? ThreadLocal 必备 [Android消息机制的原理及源码解析](https://www.jianshu.com/p/f10cff5b4c25) 源码角度完整解析 [Handler 都没搞懂,拿什么去跳槽啊?](https://juejin.im/post/5c74b64a6fb9a049be5e22fc) [Android Handler 消息机制(解惑篇)](https://juejin.im/entry/57fb3c53128fe100546ea4f2) [Android 消息机制](https://blog.csdn.net/guolin_blog/article/details/9991569) **郭神的文章**...

# TouchEvent [TOC] 本篇文章从源码角度分析 Android 触摸事件的分发传递机制。 ## View 的基础 ### 位置参数 top, left, right, bottom,到父 View 的参数 Android 3.0 之后增加的参数: * x, y:View 左上角的坐标 * translationX 和 translationY: View 左上角相对于父容器的偏移量...

SOURCE CODE

# MultiType 的扩展使用(ViewBinding, Diff.Callback) 该库是我目前使用过最好用的 adapter 库,严格的遵循数据驱动,针对使用方便性做了一些扩展。 ## Delegate 的封装 这一步封装,结合 viewbinding 省去 viewholder 的创建过程。 ### 使用反射 ```kotlin abstract class ViewBindingDelegate : ItemViewDelegate() { override fun onCreateViewHolder( context: Context, parent:...

USAGE
SOURCE CODE

随着项目的越来越来,drawable 定义越来越多。 通过kotlin DSL 来替换 xml 定义,提高开发效率,方便管理 ```kotlin object Drawable { const val TOP_LEFT = 1 const val TOP_RIGHT = TOP_LEFT.shl(1) const val BOTTOM_RIGHT = TOP_LEFT.shl(2) const val BOTTOM_LEFT =...

USAGE
SOURCE CODE

# Room 替换 SP 的可行性实践 ## 对比 ### SharedPreference 简称SP,使用键值对的形式保存原始类型的数据,默认以XML格式的文件来存储这些数据 - 适用场景:存储量小、简单的数据 - 优缺点:有自己的内存级的缓存,在数据量小的时候读取较快,但是跨进程不安全,数据量大的时候加载缓慢,全量写入,容易引起ANR ### sqlite, Room Room并不是一个数据库,他是在 sqlite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。并保留了灵活的接口适配层。 ```kotlin @Database(entities = [KeyValue::class], version = 1, exportSchema...

USAGE
SOURCE CODE

[TOC] 线上的崩溃是无法忍受的,那么有没有一种方法,将所有的崩溃进行 try catch,在开发过程中弹对话框提示,在线上环境上报进行分析。这样遇到崩溃时,结果就是用户的某些操作可能无效果,但相比崩溃,用户体验会好上很多。 ## 思路 收到 https://github.com/jenly1314/NeverCrash 的启发。下面是具体的方法。 ```kotlin import android.app.Activity import android.app.AlertDialog import android.app.Application import android.content.pm.ApplicationInfo import android.os.Bundle import android.os.Handler import android.os.Looper import java.io.PrintWriter import java.io.StringWriter object CrashUtil...

SOURCE CODE

# Android Custom View: BaGuaView [toc] 最近想熟悉一下自定义 view 的内容,于是写了下面这个八卦图,记录一下开发流程。 ![bagua](https://user-images.githubusercontent.com/10796970/74587814-353d0600-5032-11ea-8f7e-4490e5a37eb9.gif) ## 自定义View的通用步骤 这个自定义 view 主要分为两步,测量和绘制。 其中测量部分几乎是所有自定义 view 的通用步骤。 新建 BaguaView,并实现 onMeasure() 方法。 ```kotlin class Bagua2View @JvmOverloads constructor( context: Context, attrs:...

SOURCE CODE

## Logger ![image](https://user-images.githubusercontent.com/10796970/57189045-dc393100-6f3b-11e9-82ff-29641523e0df.png) ![image](https://user-images.githubusercontent.com/10796970/57189342-405df400-6f40-11e9-91da-02b6b5442ba2.png) ![image](https://user-images.githubusercontent.com/10796970/57190040-861eba80-6f48-11e9-87ff-55aaebd0c8fa.png) ## okhttp ![image](https://user-images.githubusercontent.com/10796970/57426352-70afd600-7251-11e9-896d-293cf61ab607.png) ![image](https://user-images.githubusercontent.com/10796970/57428300-53cbd080-725a-11e9-812d-227d0dc1b419.png)

DOING

# Android RecyclerView Optimization [TOC] 这篇文章总结一下 RecyclerView 的优化使用 ## 数据处理和视图加载分析 在拿到数据之后,其处理也应该异步操作。最后将直接要显示的结果进行显示。 ## 数据优化 分页拉取远端数据,对取下来的远端数据进行缓存,提升二次加载速度; 对于新增或者删除数据,通过 DiffUtil 进行局部计算更新,而不是全局更新。 ## 布局优化 ### 减少过渡绘制 减少 VH 中的布局层级,可以考虑自定义 View 或者更合理的较少布局层次,不推荐使用 ConstraintLayout。 ### 减少 xml...

USAGE