
Android 知识
文章平均质量分 88
ITRenj
相互学习,共同进步
展开
-
Fragment(四)常见问题
通过这篇博客,我们能知道以下问题:* `Fragment` 在不同情况下实现网络延迟* `Fragment` 为什么一定要有无参构造?* `Fragment` 与 `Activity` 传递数据方式* 嵌套 `Fragment` 时父 `Fragment` 生命周期传递到子 `Fragment` 中的方式......原创 2022-07-14 19:24:53 · 923 阅读 · 1 评论 -
Fragment(三)ViewPager中使用Fragment
通过这篇博客,我们能知道以下问题:* `Fragment` 加载到 `ViewPage`上的过程和用户可见性判断* `Fragment` 加载到 `ViewPage2`上的过程和用户可见性判断原创 2022-07-14 19:22:49 · 830 阅读 · 0 评论 -
Fragment(二)状态改变与管理
通过这篇博客,我们能知道以下问题:`Fragment` 的 `mState` 变化过程 `FragmentManager` 的 `mCurState` 变化过程原创 2022-05-16 11:39:26 · 1084 阅读 · 0 评论 -
Fragment(一)从源码角度看add和replace过程
通过这篇博客,我们能知道以下问题: `Fragment` `add()` 和 `replace()` 方法差别 从源码角度分析 `add()` 和 `replace()` 方法原创 2022-05-06 16:58:55 · 1115 阅读 · 0 评论 -
Activity常见问题
Activity常见问题通过这篇博客,我们能知道以下问题:Activity 各种情况下的生命周期弹出 Dialog 对 Activity 生命周期有什么影响?onActivityResult() 在哪两个生命周期之间回调?Activity 在 onResume() 之后才显示的原因是什么?通过 Sheme 协议打开 ActivityActivity 什么时候会发生重建?在 Activity 的 onCreate() 方法里写死循环会 ANR 吗?1. Activity 生命周期方法相关原创 2021-06-11 18:05:59 · 1783 阅读 · 4 评论 -
Android自定义View之Activity页面的组成
Activity包含了一个管理窗口的继承至Window的PhoneWindow对象,而在PhoneWindow中创建了一个继承至FrameLayout类的DecorView对象,并且把包含了ActionBar、TitleBar和Content的screen.xml布局文件通过addView()方法添加到了DecorView中,当开发者定义了layout.xml布局并调用了setContentView()方法时,实际上是调用了PhoneWindow类中的setContentView(),最终通过mConten原创 2016-12-10 20:23:10 · 1368 阅读 · 0 评论 -
Android Activity——启动过程探索(三)
在《Android Activity——启动过程探索(一) 和 《Android Activity——启动过程探索(二) 中我们知道了Activity启动的生命周期回调,并且分析了其中当前Activity的 onPause() 和新打开的Activity的 onCreate() 、 onStart()和onResume()回调执行过程,也就是新的Activity已经完成了 “创建->用户可见->用户可操作” 的过程。那么当前的Activity就变为不可见了,需要执行 onstop() 回调,如原创 2021-03-02 23:01:35 · 1039 阅读 · 0 评论 -
Android Activity——启动过程探索(二)
在《Android Activity——启动过程探索(一)》中我们知道了Activity启动的生命周期回调,并且分析了其中当前Activity的 onPause() 和新打开的Activity的 onCreate() 回调方法执行步骤,在这篇文章中接着分析新打开的Activity的 onStart()和onResume()回调执行过程。注意:以下分析过程,源码版本为 Android 10(Api 29),不同Android版本可能有一些差别。新的Activity调用 onStart()根据上图查看对原创 2021-02-26 14:05:16 · 738 阅读 · 0 评论 -
Android Activity——启动过程探索(一)
Activity 生命周期:首先来看一下当Activity启动时,会回调哪些生命周期的方法:不关闭当前Activity启动流程:关闭当前Activity启动流程:对于上面的回调过程,我想大部分Android开发者都是知道的,但是对于系统是怎样一步一步来回调这些方法的,可能存在不少疑问。下面我们就通过源码来看看当我们调用 startActivity() 和 finish() 方法时系统是怎样一步步来回调各个方法的。其实对于每一个生命周期方法的调用,都可以看做是一小步,所以我们的分析就可原创 2021-02-08 16:53:45 · 871 阅读 · 1 评论 -
Android Service 流程分析
在前面已经对Service基本使用及aidl使用及源码进行的分析。在这篇文章中,我们来看一下Android Service的启动流程和绑定流程,以便于更好的理解Android Service的机制。启动Service过程Android Service启动时序图上图就是Android Service启动时序图,对照图查看代码。我们在 Activity 中调用 startService() 方法时,直接调用了 调用 ContextWrapper 的 startService()@Overridep原创 2020-11-23 21:11:47 · 642 阅读 · 0 评论 -
Android Service aidl分析
《Android Service基础》《Android Service回调和配置》《Android Service aidl使用及进阶》《Android Service更多知识》《Android 中的 IntentService 类详解》Android Service 代码地址在介绍正文之前,我们先看看几个知识点进程、线程和Android中的进程间通讯(IPC)。线程:线程时CPU调度的最小单元,同时线程也是一种有限的系统资源。进程:进程一般表示一个执行单元,在..原创 2020-11-07 21:08:26 · 461 阅读 · 0 评论 -
Android Service更多知识
这篇文章主要介绍的是一些Service的相关知识,绑定服务中服务器异常中断时处理办法(死亡代理 DeathRecipient)、服务器数据更新后实时通知客户端(回调通知以及RemoteCallbackList)、Service运行线程说明、使用 Messenger 实现 Servie 与 Client 端通信、可以执行耗时操作的Service(IntentService)、怎样选择什么类型的Service死亡代理 DeathRecipient在前面的几篇文章中,我么知道了服务的绑定、aidl的使用等,我原创 2020-10-29 00:10:27 · 555 阅读 · 0 评论 -
Android Service aidl使用及进阶
AIDL:Android 接口定义语言,可以利用它定义客户端与服务均认可的编程接口,以便二者使用进程间通信 (IPC) 进行相互通信。在 Android 中,一个进程通常无法访问另一个进程的内存。因此,为进行通信,进程需将其对象分解成可供操作系统理解的原语,并将其编组为可供操作的对象。编写执行该编组操作的代码较为繁琐,因此 Android 使用 AIDL 为简化此问题。注意: 只有在需要不同应用的客户端通过 IPC 方式访问服务,并且希望在服务中进行多线程处理时,才有必要使用 AIDL。如果无需跨不同应用原创 2020-10-26 21:11:10 · 1680 阅读 · 1 评论 -
Android Service回调和配置
Service 生命周期方法回调创建服务,必须创建 Service 的子类(或使用它的一个现有子类)。可以重写一些回调方法,从而处理服务生命周期的某些关键方面,主要的回调方法有 onCreate()、onBind()、onRebind()、onStartCommand()、onStart()、onUnbind()、onDestroy()。onCreate()首次创建服务时,系统会(在调用 onStartCommand() 或 onBind() 之前)调用此方法来执行一次性设置程序。如果服务已在运行,则原创 2020-09-29 00:39:55 · 1822 阅读 · 0 评论 -
Android Service基础
简单介绍Service 是一种可在后台执行长时间运行操作而不提供界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。此外,组件可通过绑定到服务与之进行交互,甚至是执行进程间通信 (IPC)。例如,服务可在后台处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序进行交互。服务可以分为前台、后台和绑定三种类型。分类前台服务前台服务执行一些用户能注意到的操作。例如,音频应用会使用前台服务来播放音频曲目。前台服务必须显示通知。即使用户停止与应用的交互,前台服务原创 2020-09-27 23:42:09 · 605 阅读 · 0 评论 -
gradle常用命令和查看错误
Gradle 常用命令和查看错误信息Gradle 是 Android 现在主流的编译工具,使用它可以帮助我们编译、打包APP等过程。同时,我们也可以为Gradle指定构建规则,让它按照我们的指定构建应用。在Android中,我们常用的clean、build等其实就是使用的gradle方式来进行构建的,只是这些Android studio帮我们做了,我们只需要在界面上进行点击就可以了。但是,还有一...原创 2020-04-01 00:29:12 · 2059 阅读 · 1 评论 -
Android 屏幕适配常用方法
Android 中屏幕适配的几种方式原创 2017-05-17 16:31:39 · 876 阅读 · 0 评论 -
Android 蓝牙聊天简单Demo
Android 蓝牙聊天简单Demo蓝牙技术是一种近距离通信技术,自从研发至今,已经被广泛应用,生活中处处可见蓝牙耳机,有些穿戴设备也是基于蓝牙进行通信的,蓝牙通信功耗小,对于近距离通信是一个不错的选择。这篇博客就是基于Android蓝牙实现的一个建议聊天Demo。原创 2017-12-27 10:32:55 · 2364 阅读 · 0 评论 -
Android 中的 IntentService 类详解
Android 中的 IntentService 类详解简介、与 Service 的区别IntentService 继承至 Service ,所以 Service 的特点 IntentService 也全部拥有。首先,我们看一下 Service 的一些问题: Service 默认运行在主线程,不能执行耗时操作; 如果要在 Service 中执行耗时的操作,需...原创 2018-03-07 14:29:25 · 525 阅读 · 0 评论 -
Android适配生成对应的values文件
Android适配生成对应的values文件(如:values-1080x1920)使用如下Java代码自动生成多个values文件夹以及对应的lay-x、lay-y文件import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io...原创 2018-10-09 10:31:03 · 1413 阅读 · 0 评论 -
Android DataBinding
Android DataBindinggithub 传送门 https://github.com/itrenjunhua/AndroidDataBinding简单使用数据绑定1、添加 Android DataBinding 支持Android studio 需要在1.3以上,在module级别的gradle中添加大DataBinding支持android { data...原创 2018-11-06 09:40:50 · 1335 阅读 · 0 评论 -
Android页面状态控制框架(RPageStatusController)
Android页面状态控制框架(RPageStatusController)在Android开发中,对于需要加载网络数据的页面,一般页面都会对应多种状态,常见的有:加载中状态、网络错误状态、内容为空状态、内容状态、加载失败状态以及没有找到相关内容状态等。对于这种需求,一般的做法是在需要有多种状态的页面的跟布局使用 FrameLayout,然后添加不同的状态页面,最后在代码中进行控制。当然为了编...原创 2019-06-25 17:28:43 · 1067 阅读 · 0 评论 -
Android好用/常用框架整理
Android好用/常用框架整理(持续更新中…)数据库框架greenDaoGitHub地址:greenDaogreenDao数据库升级帮助框架:GreenDaoUpgradeHelper构建框架MVVM快速构建MVVM架构帮助框架:MVVMLight...原创 2019-07-17 01:06:42 · 542 阅读 · 0 评论 -
ViewModel+LiveData+DataBinding使用
ViewModel+LiveData+DataBinding使用Android DataBinding 使用博客说明Android DataBinding 使用测试代码简书:ViewModel、LiveData 使用优快云:ViewModel、LiveData 使用在上面的内容中,知道了 DataBinding 的使用,以及 ViewModel和LiveData的使用,在LiveDat...原创 2019-07-30 15:30:36 · 2614 阅读 · 7 评论 -
ViewModel、LiveData 使用
ViewModel、LiveData 使用官方中文教学地址在看以下内容之前,如果对DataBinding不够熟悉,建议先对DataBinding进行了解。Android DataBinding 使用博客说明Android DataBinding 使用测试代码ViewModel 简介ViewModel类是用来保存UI数据的类,它会在配置变更(即 Configuration Change,...原创 2019-07-23 02:29:39 · 567 阅读 · 0 评论 -
Activity 启动模式及任务栈探究
Activity 启动模式及任务栈探究在Android中,默认情况下,当我们启动一个Activity的时候,系统会创建一个Activity实例然后将它放入任务栈(任务栈是一个 “后进先出” 的栈结构)中,当我们按 back 键返回时,这些Activity就会一一回退。但是当我们重复启动一个Activity多次时,就会创建多个该Activity的实例,同样返回时要多次返回一个一个退出才行,在很多情...原创 2019-08-08 20:00:53 · 855 阅读 · 0 评论 -
设置ViewPager的切换动画时间
当我们在直接使用viewPager.setCurrentItem(currentItem);时,ViewPager的切换使用时间是系统给定的,如果我们需要自己设置切换使用时长,系统在ViewPager类中是没有给出方法直接设置的,所以我们需要自己通过其他方法来进行设置。1.创建一个类继承Scroller原创 2016-12-09 22:01:29 · 5214 阅读 · 0 评论