
Android学习笔记
Abfahrt
Gonna make it!
展开
-
Android ANR
Android ANR文章目录Android ANR1.ANR简单介绍1.1 产生ANR的场景1.2 ANR具体时间定义2.ANR触发分析2.1 Input相关2.2 Service相关2.3Broadcast相关2.4 ContentProvider相关参考资料1.ANR简单介绍ANR:应用程序无响应(Application Not Responding)1.1 产生ANR的场景InputDispatching Timeout:5秒内无法响应屏幕触摸事件或键盘输入事件。Servic原创 2020-05-12 16:52:40 · 544 阅读 · 0 评论 -
Android中ViewStub的使用与分析
文章目录1.ViewStub的简单使用1.1 简单说明1.2 简单示例2.结合源码分析问题2.1 第二次调用inflate()加载会抛出空指针异常2.2 第二次通过调用setVisibility()加载也会抛出空指针异常2.3 监听事件的设置1.ViewStub的简单使用1.1 简单说明ViewStub实质上是一个宽高都为0的不可见 View。通过延迟加载布局的方式优化布局,提升渲染性能。1.2 简单示例activity_main.xml<?xml version="1.原创 2020-05-11 19:05:18 · 888 阅读 · 0 评论 -
TextView中使用富文本
TextView中使用富文本文章目录TextView中使用富文本1.Html.fronHtml2.SpannableString2.1 .setSpan()方法2.2 可设置的格式1.Html.fronHtml布局:<TextView android:id="@+id/test_text_view" android:textSize="30dp" and...原创 2020-04-27 13:56:28 · 748 阅读 · 0 评论 -
JetPack基础导航
JetPack 组件基础JetPack组件是一个用于构建Android原生UI的现代化工具箱。JetPack组件可以简化和加速了我们在Android上的UI开发,它使我们可以编写更精简的代码,同时它也提供了强大的工具和直观的Kotlin APIs。你不需要编辑任何XML格式的布局文件,也不需要在代码中创建控件。你只需要调用JetPack组件中的函数,告诉它你需要什么,剩下的将由JetPac...原创 2020-03-20 14:55:57 · 278 阅读 · 0 评论 -
Chapter4:与Fragment交互
Chapter4:与Fragment交互文章目录Chapter4:与Fragment交互4.1 屏幕界面管理4.2 动态管理Fragment4.2.1 事务变更的延迟执行4.2.2 添加和删除Fragment4.2.3 返回键的支持4.3 创建一个自适应的应用布局4.3.1 更新布局资源文件使其支持动态Fragments4.3.2 适配差异的设备4.3.3 动态载入Fragment4.3.4 消...原创 2020-01-16 18:00:22 · 1664 阅读 · 0 评论 -
Chapter3:Fragment的生命周期及其衍生
Chapter3:Fragment的生命周期及其衍生文章目录Chapter3:Fragment的生命周期及其衍生3.1 理解Fragment的生命周期3.1.1 理解Fragment的创建和展示3.1.2 避免方法命名混淆3.1.3 理解Fragment的隐藏与销毁3.1.4 尽可能高效的使用资源3.1.5 管理Fragment的状态3.2 Fragment衍生的特殊用途类3.2.1 ListF...原创 2020-01-14 13:44:18 · 294 阅读 · 0 评论 -
Android自定义控件——04属性动画补充
4.属性动画补充文章目录4.属性动画补充4.1 PropertyValuesHolder与Keyframe4.1.1 PropertyValuesHolder4.1.2 Keyframe4.2 ViewPropertyAnimator4.2.1 概述4.2.2 常用函数4.2.3 性能考量4.3 为ViewGroup内的组件添加动画4.3.1 animatelayoutChanges 属性4.3...原创 2019-12-31 17:34:41 · 353 阅读 · 0 评论 -
Android自定义控件——03属性动画
3.属性动画文章目录3.属性动画3.1 ValueAnimator的基本使用3.1.1 概述3.1.2 ValueAnimator 的简单使用3.1.3 常用函数3.2 自定义插值器与Evaluator3.2.1 自定义插值器3.2.2 Evaluator3.3 ofObject3.3.1 概述3.4 ObjectAnimator3.4.1 概述3.4.2 自定义ObjectAnimator属性...原创 2019-12-27 17:09:34 · 481 阅读 · 0 评论 -
Android自定义控件——02视图动画
2.视图动画文章目录2.视图动画2.1 视图动画标签2.1.1 概述2.1.2 scale标签2.1.3 Animation继承属性2.1.4 alpha 标签2.1.5 rotate 标签2.1.6 translate 标签2.1.7 set 标签2.2 视图动画的代码实现2.2.1 概述2.2.2 ScaleAnimation2.2.3 AlphaAnimation2.2.4 RotateA...原创 2019-12-25 15:49:01 · 569 阅读 · 0 评论 -
Android自定义控件——01绘图基础
1.绘图基础文章目录1.绘图基础1.1 基本图形绘制1.1.1 概述1.1.2 Paint使用基础1.1.3 Canvas使用基础1.1.4 Color1.1.5 补充1.2 路径1.2.1 概述1.2.2 直线路径1.2.3 弧线路径1.2.4 补充1.3 Region1.3.1 构造Region1.3.2 区域相交1.3.3 补充1.4 Canvas(画布)1.4.1 Canvas 变换1....原创 2019-12-24 18:07:53 · 555 阅读 · 0 评论 -
Android 调式桥(adb)常用命令
Android 调式桥(adb)常用命令文章目录Android 调式桥(adb)常用命令1.简介2.常用命令查看设备列表通过 WLAN 连接到设备停止 adb 服务器查询设备详细信息安装应用删除应用设置端口转发将文件复制到设备/从设备复制文件3.更多命令1.简介Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令便于执行各种设备操作(例如安...原创 2019-11-25 15:36:32 · 192 阅读 · 0 评论 -
Android——View的工作原理
View的工作原理文章目录View的工作原理1.1 ViewRoot和DecorView简介1.1.1 ViewRoot相关1.1.2 DecorView相关1.2 理解MeasureSpec1.2.1 MeasureSpec1.2.2 MeasureSpec和LayoutParams的对应关系1.3 View的工作流程1.3.1 measure过程1.3.2 layout过程1.3.3 dra...原创 2019-11-25 13:42:45 · 200 阅读 · 0 评论 -
Android——View的事件体系
Android的View事件体系文章目录Android的View事件体系1.1 View简述1.1.1 View的位置参数1.1.2 MotionEvent和TouchSlop1.1.3 VelocityTracker、GestureDetector、Scroller1.2 View的滑动1.2.1 使用scrollTo/scrollBy1.2.2 使用动画1.2.3 改变布局参数1.2.4 滑...原创 2019-11-21 18:25:57 · 255 阅读 · 0 评论 -
Android事件分发源码分析
Android事件分发源码分析文章目录Android事件分发源码分析1.1 Activity->dispatchTouchEvent()1.2 Window->superDispatchKeyEvent()1.3 View对点击事件的分发过程1.3.1 点击事件的分发过程概述1.3.2 ViewGroup点击事件分发处理过程分析1.3.3 View点击事件分发处理过程分析1.4 参考...原创 2019-11-21 18:19:40 · 235 阅读 · 0 评论 -
AIDL代码举例
AIDL代码举例文章目录AIDL代码举例1.对象类及AIDL文件2.服务端3.客户端4.AndroidManifest补充IPC机制学习中AIDL使用的实例代码。学习笔记正文实现的是客户端与服务端之间的跨进程通信及RPC调用,还有服务端对客户端的定时通知。1.对象类及AIDL文件Person.javapublic class Person implements Parc...原创 2019-11-14 18:19:28 · 181 阅读 · 0 评论 -
Android的IPC机制(下)
Android的IPC机制(下)文章目录Android的IPC机制(下)1.4 Android中的IPC方式1.4.1 使用Bundle1.4.2 使用文件共享1.4.3 使用Messenger1.4.4 使用AIDL1.4.5 使用ContentProvider1.4.6 使用Socket1.5 Binder连接池1.6 选择合适的IPC方式1.7 其他1.7.1 运行环境1.7.2 过程中可...原创 2019-11-14 18:15:24 · 516 阅读 · 0 评论 -
Android的IPC机制(上)
Android的IPC机制(上)文章目录Android的IPC机制(上)1.1 IPC概念简介1.2 Android中的多进程模式1.2.1 开启多进程模式1.2.2 多进程模式的运行机制1.3 IPC基础1.3.1 Serializable接口1.3.2 Parcelable接口1.3.3 Serializable接口和Parcelable接口对比1.3.4 Binder1.1 IPC概念简...原创 2019-11-07 11:46:22 · 261 阅读 · 0 评论 -
Activity的生命周期/启动模式/过滤规则
Activity的生命周期/启动模式/过滤规则文章目录Activity的生命周期/启动模式/过滤规则1.1 Activity 的生命周期1.1.1 典型情况下的生命周期分析1.1.2 异常情况下的生命周期分析1.2 启动模式1.2.1 四种启动模式1.2.2 TaskAffinity1.2.3 指定启动模式1.2.4 Activity的标识1.3 IntentFilter 的过滤规则(inten...原创 2019-11-04 17:26:02 · 713 阅读 · 2 评论 -
Chapter8:关于Android开发中使用Gradle的一些补充
Chapter8:关于Android开发中使用Gradle的一些补充文章目录Chapter8:关于Android开发中使用Gradle的一些补充8.1 持续继承8.2 减少APK文件大小8.3 加速构建8.4 忽略Lint8.5 分割APK8.6 参考资料8.1 持续继承为Android设置Ci的方式很多,广泛使用的有:JenkinsTeamCityTravis CI...原创 2019-10-30 17:57:58 · 210 阅读 · 0 评论 -
Chapter7:使用Gradle创建任务
Chapter7:使用Gradle创建任务文章目录Chapter7:使用Gradle创建任务7.1了解Groovy7.2 了解任务7.3 操控构建 variants7.4 参考资料7.1了解Groovy变量://字符串可用单引号/双引号;双引号可以插入表达式def name = 'Andy'println(name)//包含一个单独变量的占位符表达式:$前缀def greet...原创 2019-10-30 17:56:43 · 162 阅读 · 0 评论 -
Chapter6:Gradle帮助自动化测试
Chapter6:Gradle帮助自动化测试文章目录Chapter6:Gradle帮助自动化测试6.1 JUnit4 --单元测试6.2 Espresso --功能测试6.3 测试覆盖率6.4 参考资料6.1 JUnit4 --单元测试添加只用于测试的依赖:(使用Android Studio创建会帮你自动添加)dependencies { testImplementation...原创 2019-10-29 16:12:18 · 305 阅读 · 0 评论 -
Chapter5:使用Gradle管理多模块构建
Chapter5:使用Gradle管理多模块构建文章目录Chapter5:使用Gradle管理多模块构建5.1 简述多模块构建5.2 在Android Studio中运行模块任务5.3 参考资料5.1 简述多模块构建通常,一个多模块项目有一个根目录,在其子文件夹中包含所有的模块。我们需要在项目的根目录提供一个setting.gradle 文件来告知Gradle项目的结构以及哪个文件夹包...原创 2019-10-29 10:28:26 · 310 阅读 · 0 评论 -
Chapter4:Android开发中使用Gradle创建构建Variant
Chapter4:创建构建VariantVariant 英文翻译:变体。文章目录Chapter4:创建构建Variant4.1 构建类型4.2 product flavor4.3 构建variant4.4 参考资料4.1 构建类型在Gradle的Android插件中,构建类型用来定义如何构建一个应用或依赖库。可以在 buildTypes代码块 中定义:android { ...原创 2019-10-28 15:10:54 · 644 阅读 · 0 评论 -
Chapter3:Gradle依赖管理
Chapter3:Gradle依赖管理文章目录Chapter3:Gradle依赖管理3.1 依赖仓库3.2 本地依赖3.3 依赖概念3.4 参考资料3.1 依赖仓库手动依赖需要:找到依赖->下载JAR文件->拷贝到项目->引用,十分复杂。使用依赖仓库可以解决个问题,依赖仓库可以看做是文件的集合。Gradle默认情况下没有为项目定义任何依赖仓库,需要在 reposito...原创 2019-10-26 15:32:55 · 1754 阅读 · 0 评论 -
Chapter2:使用Fragment灵活地构建UI
Chapter2:使用Fragment灵活地构建UI文章目录Chapter2:使用Fragment灵活地构建UI2.1 选择动态的碎片式布局2.1.1添加可替换布局资源2.1.2 根据屏幕大小管理Fragment布局2.1.3 使用布局别名来消除冗余的布局2.2 设计灵活的Fragment2.2.1 拒绝高耦合2.2.2 抽象Fragments之间的关系2.3 预防使用Fragment时产生的意...原创 2019-10-25 17:51:01 · 2862 阅读 · 0 评论 -
Chapter2:Android下Gradle的基本自定义构建
Chapter2:Gradle基本自定义构建文章目录Chapter2:Gradle基本自定义构建2.1 Gradle文件结构2.2 任务入门2.3 自定义构建2.4 加快Gradle 编译速度2.5 参考资料2.1 Gradle文件结构settings.gradle:该文件在初始化阶段被执行,定义了哪些模块应该包含在构件内。对于只包含一个Android应用的新项目,文件内容为 inc...原创 2019-10-24 16:19:08 · 1412 阅读 · 0 评论 -
Chapter1:Gradle基础概念
Chapter1:Gradle基础概念文章目录Chapter1:Gradle基础概念1.1 Gradle 基础概念1.1.1 项目和任务1.1.2 构建生命周期1.1.3 构建配置文件1.1.4 项目结构1.1.5 Gradle Wrapper1.1.6 参考资料1.1 Gradle 基础概念1.1.1 项目和任务项目和任务:每一次构建都包括至少一个项目, 每一个项目又包括一个或多个任...原创 2019-10-23 19:09:47 · 1378 阅读 · 0 评论 -
Chapter1:碎片和UI模块化
Chapter1:碎片和UI模块化文章目录Chapter1:碎片和UI模块化1.1 我们需要一种新的UI设计方式1.2 平台架构对Fragment的支持1.3 Fragments和Activities之间的关系1.4 从Activity向Fragment转移1.5 Activity为导向的开发的思考1.5 Fragment为导向的开发的思考1.6 创建Fragment类1.7 在Activity...原创 2019-10-22 18:25:01 · 255 阅读 · 0 评论 -
Dagger2的简单使用
Dagger2的简单使用文章目录Dagger2的简单使用1.预备知识1.1 注解概念1.2 控制反转与依赖注入概念2.Dagger2的使用2.1 基本使用方法2.2 @Module 和 @Provides2.3 @Named 和 @Qualifier2.4 @Singleton 和 @Scope2.5 @Component 的 dependencies2.6 懒加载3.参考资料1.预备知识...原创 2019-10-17 14:33:13 · 152 阅读 · 0 评论 -
ButterKnife的简单实用
ButterKnife的简单实用1.简介专注于 Android 系统的View 注入框架。减少大量的findViewById 以及 setOnClickListener代码。官网:GitHub2.使用方法2.1 环境API 28JAVA 8Android Studio 3.4.2添加依赖库implementation 'com.jakewharton:butt...原创 2019-10-16 18:13:38 · 107 阅读 · 0 评论 -
EventBus的简单使用方法
EventBus的简单使用方法文章目录EventBus的简单使用方法1.简介2.添加依赖3.使用简介3.1 定义一个事件类(Bean)3.2 在需要订阅事件的地方注册事件3.3 订阅事件3.4 及时取消注册事件订阅3.5 发布事件3.6 ProGuard混淆3.7 Sticky 粘性事件4.其他1.简介EventBus是针对Android 和Java的发布/订阅的事件总线。简化了组件之...原创 2019-10-15 18:53:11 · 162 阅读 · 0 评论 -
初步了解Design支持库
初步了解Design支持库文章目录初步了解Design支持库1.开发环境2.SnackBar3.TextInputLayout4.FloatingActionButton5.TabLayout6.NavigationView7.CoordinatorLayout8.CollapsingToolbarlayout参考资料1.开发环境API 28JAVA 8Android Studio ...原创 2019-10-11 13:46:23 · 512 阅读 · 0 评论 -
Android 开发中3种Notification的简单应用
Android 开发中3种Notification的简单应用文章目录Android 开发中3种Notification的简单应用3种Notification代码实现运行环境3种Notification普通Notification折叠Notification悬挂Notification代码实现MainActivity.classpackage com.virtual....原创 2019-10-09 16:43:57 · 367 阅读 · 0 评论 -
Android 开发中好用的工具和第三方库
文章目录1.png格式图片压缩1.png格式图片压缩TinyPng原创 2019-09-30 17:17:00 · 350 阅读 · 0 评论 -
Android Studio 控件无法使用的问题
文章目录Q1:SwipereFreshLayout 无法使用1.1问题背景1.2解决方式Q2:AndroidX support依赖库对应表2.1 引用地址2.2 Support依赖库参考表Q1:SwipereFreshLayout 无法使用1.1问题背景Android Gradle Plugin Version: 3.2.1Gradle Version:5.1.1SDK : API ...原创 2019-09-30 17:13:18 · 977 阅读 · 1 评论