
android
Billion.Lee
不要说加油了,听着心烦
展开
-
Android Studio Debug 包无法运行在真机上
debug 包无法运行到真机上是 Android Studio 3.0 新加的功能,在 gradle.properties 文件添加android.injected.testOnly=false代码就可以禁止这个功能。原创 2020-03-23 12:39:59 · 408 阅读 · 0 评论 -
kotlin 范围函数(Scope Functions)
文章目录1 概述2 如何区别3 应用场景3.1 let3.2 with3.3 run3.4 apply3.5 also4 总结* 参考1 概述范围函数是一种能作用在某个对象上的 block(代码块,也可以叫闭包或匿名函数),可以在代码块中方便的引用目标对象从而达到简化代码逻辑、减少中间变量的功效。Kotlin 标准库中共有 5 个范围函数 let, run, with, apply, also...原创 2020-02-29 21:32:23 · 1155 阅读 · 0 评论 -
setContentView() 背后的故事
文章目录概述setContentViewlayoutInflater.inflate参考概述本篇文章将介绍 Activity.onCreate(bundle) 方法中 setContentView(R.layout.some_layout) 方法的执行逻辑。主要包括 DecoView 的生成以及如何从 R.layout.some_layout 导出 View。刚开始接触 Android 时,...原创 2020-02-11 15:54:11 · 451 阅读 · 0 评论 -
Android App 加载过程介绍:从 startActivity() 到 Activity.onCreate()
设备启动后会启动 init 进程(init main),此进程会根据 init.rc 文件进行启动后的相关调用(文件位置),主要是生成许多硬件相关的守护进程,比如 android debug 守护进程,USB 守护进程等,还会启动大名鼎鼎的 ‘zygote’ 进程,它会初始化一个非常原始的 Dalvik VM,并且会提前加载一些 framework 或已安装应用的通用类,之后会进入就绪状态,等待通...原创 2020-02-06 18:53:02 · 984 阅读 · 0 评论 -
Activity launchMode、回退栈与 affinity
文章目录概述Task 与回退栈activity 相关属性launchModelaffinity参考概述最近在看 aosp 源码,Activity 启动流程中涉及到大量 Activity 处理细节,如果不从模型上掌握 Task, affinity 等概念,很容易看迷失在代码里。本文意在从模型上梳理 Activity 启动模式以及对应的设置代表的含意,为继续阅读源码打基础。Task 与回退栈一...原创 2020-02-04 17:49:41 · 367 阅读 · 0 评论 -
从示例了解 Binder 机制
Binder 是 Android 实现跨进程通信(IPC)的一种手段,Android 中每个应用都运行个独自的进程中,每个应用想要正常工作都需要系统服务提供支持,它们之间的信息传递就是基于 Binder 实现。只是因为 Android 对 Binder 层层封装起来普通开发任务接触不到 Binder 层面的接口,所以 Binder 才显示有点神秘。本篇文章将从 Service 组件做为起点,用实例...原创 2020-01-30 18:35:54 · 255 阅读 · 0 评论 -
Handler 简介
文章目录概要源码分析Looper.prepare() 作用及实现loop 如何实现等待功能概要Handler 主要有两个作用定时执行消息或 Runnable 任务向其它线程发送消息或 Runnable 任务Handler 是 Android 消息分发处理机制中的一个组件。与 Looper、MessageQueue、Message 共同完成消息发送与处理。它们之间关系如下:每个线程对应...原创 2020-01-28 21:47:46 · 752 阅读 · 0 评论 -
aosp - 源码阅读环境搭建
文章目录1 背景2 获取源码3 建立源码索引# 遇到的问题1 背景Android 开发平时都是看的都是 SDK 中的源码,SDK 中有很多代码都被隐藏了,看不了。mac 上没有 source insight 工具,折腾半天 vscode 插件,也没能设置通代码跳转功能。后来,看到有在线版 aosp 预览网站,第一个是 androidxref,体验还不错,就是加载慢,后来出了个国内版本 andr...原创 2020-01-27 08:40:26 · 5463 阅读 · 0 评论 -
AAPT2
原文地址AAPT2 全称 Android Asset Packaging Tool 属于构建工具,Android Studio 与 Gradle 插件使用它编译并打包 app 的资源文件。AAPT2 将资源文件解析、索引并编译成二进制格式,并将该二进制包进行 Android 平台的优化处理。Android Gradle 插件 3.0.0 及以上版本默认支持 AAPT2,开发者无需直接调用它。但...翻译 2020-01-22 22:21:10 · 2304 阅读 · 0 评论 -
发布三方 aar 包到 jCenter
文章目录1 私有项目发布到 jCenter public 仓库1.1 背景1.2 思路1.3 具体步骤2 将三方 aar 发布到 jCenter public 仓库2.1 背景2.2 思路2.3 具体步骤本文介绍如何将自己的 aar 包上传到 jCenter 并发布至 public 仓库。1 私有项目发布到 jCenter public 仓库1.1 背景源码在 Github 上以私有库的形...原创 2020-01-22 22:19:41 · 282 阅读 · 0 评论