安卓基础知识
文章平均质量分 87
WayneSun729
这个作者很懒,什么都没留下…
展开
-
【Android View】requestLayout、invalidate与postInvalidate
上来先说结论,一言以蔽之:requestLayout方法会导致View的onMeasure、onLayout、onDraw方法被调用;invalidate方法则只会导致View的onDraw方法被调用具体原理可见文章末尾的这几篇博客,说的已经非常详细,这里只对要点进行记录。相似点都采用了逐层上报的思想区别requestLayout()子View调用requestLayout方法,会标记当前View及父容器,同时逐层向上提交,直到ViewRootImpl处理该事件,ViewRootImpl会原创 2022-02-10 15:09:54 · 1650 阅读 · 0 评论 -
【Android 进阶】理解 Context
Context,即上下文,是Android中常用的类之一。但是很多人仅停留在了“会用”这一阶段,没有做到“知其然,知其所以然”。本篇文章将较为详细的为大家介绍一下Context,帮助大家更加深入的理解Android程序员的这一“老朋友”。原创 2022-01-28 22:44:23 · 2851 阅读 · 0 评论 -
Android Gradle 高级自定义
Android Gradle 自定义配置原创 2021-12-26 21:35:38 · 1461 阅读 · 0 评论 -
【Android 界面】剪切板的基本使用
Android 提供了一个强大的基于剪贴板的框架,用于复制和粘贴。它支持简单和复杂的数据类型,包括文本字符串、复杂数据结构、文本、二进制流数据,甚至应用资源。简单的文本数据直接存储在剪贴板中,而复杂的数据则存储为引用,执行粘贴操作的应用使用 Content Provider 对其进行解析。复制和粘贴既可以在应用内进行,也可以在实现了该框架的应用之间进行。剪切板类ClipboardManager在 Android 系统中,系统剪贴板由全局 ClipboardManager 类表示。您不能直接实例化此类;原创 2021-12-15 14:15:41 · 25949 阅读 · 1 评论 -
【Android View】初识 View
Android程序中的一个个界面都是由View组成的,下面让我们一起来了解一下View吧!View 的分类如上图所示,系统的View大体分为两类,即View与ViewGroup,分别对应了控件与布局。View 的重要方法View 的工作流程一个View显示在屏幕上,经过了measure,layout,draw三个过程。其中,measure用来测量View的宽和高,layout用来确定View的位置,draw则用来绘制View。MeasureSpecMeasureSpec : View的一个原创 2021-11-18 14:37:09 · 1552 阅读 · 0 评论 -
【Android View】View 的事件分发机制
Activity 的构成以Activity的setContentView方法为入口,查看源码可知:一个Activity包含一个Window对象,这个对象是由PhoneWindow来实现的。PhoneWindow将DecorView作为整个应用窗口的根View,而这个DecorView又将屏幕分为两个区域,即TitleView与ContentView,而我们正常做应用所写的布局正是展示在ContentView中的。View 的点击事件分发机制...原创 2021-11-22 20:06:21 · 1814 阅读 · 0 评论 -
【Android View】自定义ViewGroup——继承自ViewGroup的水平翻页视图HorizontalView的实现
自定义ViewGroup可按父类分为三类,分别为继承自ViewGroup、继承自系统特定的ViewGroup(如LinearLayout)和继承自View。其中第二种最为简单,第三种最为复杂,让我们先把目光放在第一种难度适中的情况。目标仿照 ViewPager 完成一个水平翻页视图,支持左右滑动切换不同的页面。开始继承ViewGroup首先,我们先创建一个HorizontalView类,并实现其抽象方法。public class HorinzontalView extends ViewGrou原创 2021-11-29 22:11:10 · 1588 阅读 · 0 评论 -
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 14 高级技巧
第十四章:继续进阶,你还应该掌握的高级技巧由于本章多为用法,我只总结了一些理论知识——各个组件的用途目录第十四章:继续进阶,你还应该掌握的高级技巧全局获取Context的技巧使用Intent传递对象Serializable 序列化Parcelable 包裹化定制自己的Log调试Android程序传统调试——添加断点使用Attach Debugger to Android Process深色模式ForceDarkDayNight主题主题差异性编程建议:判断当前是否是深色主题全局获取Context的技原创 2020-07-25 00:52:12 · 160 阅读 · 0 评论 -
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 13 Jetpack
第十三章:高级程序开发组件,探究Jetpack由于本章多为用法,我只总结了一些理论知识——各个组件的用途目录第十三章:高级程序开发组件,探究JetpackJetpack简介ViewModelLifecyclesLiveDataRoomWorkManagerJetpack简介Jetpack是一个开发组件集,其主要目的是为了帮助我们编写出更加简洁的代码,并简化我们的开发过程。Jetpack中的组件大都不依赖于Android系统版本,兼容性较好。ViewModel由于传统开发模式下,Activit原创 2020-07-25 00:28:33 · 330 阅读 · 0 评论 -
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 12 Material Design
第十二章:最佳的UI体验,Material Design实战目录第十二章:最佳的UI体验,Material Design实战什么是Material DesignToolbar滑动菜单DrawerLayout 抽屉布局NavigationView 导航视图悬浮按钮和可交互提示FloatingActionButton 悬浮按钮SnackBar 快餐厅CoordinatorLayout 协调器布局卡片式布局MaterialCardViewGlideAppBarLayout 应用程序栏布局下拉刷新SwipeR原创 2020-07-24 20:07:27 · 588 阅读 · 0 评论 -
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 11 网络编程
第十一章:看看精彩的世界,使用网络技术注意,使用网络需要在权限中声明目录第十一章:看看精彩的世界,使用网络技术WebView使用HTTP访问网络HttpURLConnectionOkHttp解析XML数据PullSAX解析JSON数据JSONObjectGSON网络请求回调的实现方式Android 9.0的HTTP适配问题Retrofit设计思想1.同一款应用程序中发起的网络请求绝大多数指向的是同一个服务器域名2.服务器提供的接口通常是可以根据功能来归类的3.开发者更习惯于“调用一个接口,获得它的返回原创 2020-07-23 23:10:41 · 215 阅读 · 0 评论 -
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 10 Service
第十章:后台默默的劳动者,探究Service目录第十章:后台默默的劳动者,探究ServiceService是什么安卓异步消息处理机制子线程中无法更新UI异步消息处理机制组成1.Message2.Handler3.MessageQueue4.Looper流程AsyncTaskService的用法基本用法与Activity进行通信Service的生命周期前台ServiceIntentServiceService是什么Service是Android中实现程序后台运行的解决方案,它适合执行那些不需要和用户交互原创 2020-07-22 23:55:51 · 248 阅读 · 0 评论 -
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 9 通知&多媒体技术
第九章:丰富你的程序,运用手机多媒体目录第九章:丰富你的程序,运用手机多媒体通知通知渠道创建通知渠道PendingIntent相机、播放音频通知当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。通知渠道虽然Android系统运行我们将某个应用程序的通知完全屏蔽,Android8.0系统之前,用户无法对所有信息做出区分,要么同意接受所有信息,要么屏蔽所有信息。 而Android 8.0系统引入了通知渠道的概念。每个应用程序都可以自由地创建当前应原创 2020-07-23 23:11:42 · 202 阅读 · 0 评论 -
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 8 ContentProvider
第八章:跨程序共享数据,探究ContentProvider目录第八章:跨程序共享数据,探究ContentProviderContentProvider简介运行时权限权限的分类普通权限危险权限运行时权限的用法访问其他程序中的数据ContentResolver的基本用法创建自己的ContentProvider步骤如何保证隐私数据不被泄露呢?ContentProvider简介ContentProvider主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数原创 2020-07-21 12:42:30 · 432 阅读 · 0 评论 -
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 7 数据持久化
第七章:数据存储全方案,详解持久化技术目录第七章:数据存储全方案,详解持久化技术持久化技术简介文件存储简介用法SharedPreferences存储简介用法使用SharedPreferences存储数据从SharedPreferences读取数据SQLite数据库存储简介数据类型用法使用SQL操作数据库持久化技术简介瞬时数据即存储在内存中,有可能因为程序关闭或其它原因导致内存被回收而丢失的数据。而数据持久化指的将那些内存中的瞬时数据保存到储存设备中,保证即使在手机或计算机关机的情况下,这些数据仍然不原创 2020-07-20 17:07:16 · 490 阅读 · 0 评论 -
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 6 广播
第六章:全局大喇叭,详解广播机制目录第六章:全局大喇叭,详解广播机制广播类型标准广播与有序广播标准广播有序广播隐式广播与显式广播隐式广播显式广播注册广播动态注册静态注册对比注意发送广播发生标准广播发生有序广播广播类型标准广播与有序广播标准广播标准广播是一种完全异步执行的广播,在广播发出之后,所有的BroadcastReceiver几乎会在同一时间收到这条广播消息,因此它们之间没有任何先后顺序可言,也就无法被截断,这种广播效率较高。有序广播有序广播是一种同步执行的广播,在广播发出之后,同一时间只原创 2020-07-19 23:37:23 · 146 阅读 · 0 评论 -
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 5 Fragment
第五章:手机平板要兼顾,探究FragmentFragment是一种可以嵌入Activity当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间。> 本章实践知识较多,理论知识较少目录第五章:手机平板要兼顾,探究FragmentFragment生命周期Fragment的状态Fragment的回调Fragment用法系统内置的android.app.Fragment和Androidx库中的Fragment有什么区别?动态添加Fragment的步骤在Fragment中实现返回栈Fragment原创 2020-07-19 11:09:48 · 301 阅读 · 0 评论 -
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 4 UI开发
第四章:软件也要拼脸蛋,UI开发的点点滴滴> 本章实践知识较多,理论知识较少目录第四章:软件也要拼脸蛋,UI开发的点点滴滴常用控件的使用方法布局线性布局 LinearLayout相对布局 RelativeLayout帧布局 FrameLayout约束布局自定义控件引入布局创建自定义控件ListViewRecycleView9-Patch 图片常用控件的使用方法这里直接贴上代码布局代码:<?xml version="1.0" encoding="utf-8"?><Lin原创 2020-07-18 16:58:53 · 261 阅读 · 0 评论 -
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 3 探究Activity
第三章:先从看的到的入手,探究Activity原创 2020-07-17 17:56:31 · 472 阅读 · 0 评论 -
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 2 Kotlin语法
2020年7月14日第二章:探究新语言,快速入门Kotlin编程原创 2020-07-15 00:51:18 · 1585 阅读 · 0 评论 -
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 1 安卓简介
温习Android基础知识——《第一行代码(第三版)》读书笔记 Day1 第一章:开始启程,你的第一行Android代码原创 2020-07-13 23:14:19 · 351 阅读 · 0 评论