![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android八股文
文章平均质量分 76
Android八股文呗。。
Meloooooooo
这个作者很懒,什么都没留下…
展开
-
Android
5.横竖屏切换,按home键,按返回键,锁屏与解锁屏幕,跳转透明Activity界面,启动一个 Theme 为 Dialog 的 Activity,弹出Dialog时Activity的生命周期。7.Dialog的Context只能是Activity的Context,不能是Application的Context。如果是400800,10801920,加载的优先级。4.IntentService是什么,IntentService原理,应用场景及其与Service的区别。2.ActivityThread是什么?原创 2024-08-01 13:44:34 · 336 阅读 · 0 评论 -
横竖屏切换,按home键,按返回键,锁屏与解锁屏幕,跳转透明Activity界面,启动一个 Theme 为 Dialog 的 Activity,弹出Dialog时Activity的生命周期
在Android开发中,横竖屏切换、按Home键、按返回键、锁屏与解锁屏幕、跳转透明Activity界面、启动一个Theme为Dialog的Activity,以及弹出Dialog时,都会对Activity的生命周期产生影响。启动一个 Theme 为 Dialog 的 Activity: 会onPause 不会stop。横竖屏切换:A 走完 ondestory 才会走B的onCreate --会走pause。跳转透明Activity界面:会走pause 但是不会走onstop。锁屏与解锁屏幕:普通。原创 2024-07-29 11:46:35 · 812 阅读 · 0 评论 -
onStart、onResume、onPause和onStop
方法定义状态回调角度用途onStart()Activity正在被启动Activity可见但不在前台可见性初始化UI元素,准备显示onResume()Activity可见并位于前台Activity完全可见且在前台前台性恢复Activity状态,准备交互onPause()Activity正在停止Activity不在前台,可能仍然可见前台性保存状态,执行清理工作onStop()Activity即将停止,不再可见Activity不可见可见性执行不耗时的清理工作。原创 2024-07-29 14:16:29 · 399 阅读 · 0 评论 -
Intent的数据传递
数据大小限制:虽然官方没有明确说明Intent的数据大小限制,但是Intent是通过Binder机制进行IPC(进程间通信)的,Binder交易缓存区有大小限制(通常是1MB或2MB,具体取决于设备和Android版本)。使用Messenger或AIDL进行IPC:如果需要在不同进程之间传递大量数据,并且需要更复杂的交互逻辑,可以考虑使用Messenger(基于Handler的消息传递)或AIDL(Android接口定义语言)来实现。对于大数据量的传递,建议使用文件、数据库或序列化与反序列化的方式。原创 2024-07-29 15:07:50 · 552 阅读 · 0 评论 -
Service与Activity怎么实现通信
Activity通过AIDL接口的代理对象调用Service中的方法,实现跨进程通信。在Android开发中,Service与Activity之间的通信是常见的需求,以便实现功能的协调和数据的传递。以下是几种实现Service与Activity通信的主要方法: ### 1. 使用Binder机制 Binder是Android系统提供的一种IPC(进程间通信)方式,允许Activity直接访问并调用Service中的方法。回调中,通过返回的IBinder对象获取Service的实例,并调用其方法。原创 2024-07-30 18:18:38 · 312 阅读 · 0 评论 -
Activity的onNewIntent()方法什么时候会执行
PS: 核心一点 就是已经Activity已经存在了,然后还有被复用的时候 就会走。已经存在于任务栈中(无论是位于顶部还是其他位置),根据。:如果你的应用从通知栏中的通知启动了一个。已经位于任务栈的顶部,并且用户尝试通过。(如果它已经在前台),并且不一定会导致。已经位于任务栈的顶部,那么同样会调用。的状态(如位于任务栈的顶部或符合。方法会被调用,而不是创建这个。方法,而不是创建新的实例。的条件)时才会被调用。不会被调用,而是会正常通过。的调用,但它在将已存在的。的匹配导致创建了一个新的。原创 2024-07-30 10:47:31 · 339 阅读 · 0 评论 -
service 的生命周期,两种启动方式的区别和混合调用相关
启动方式调用方法生命周期方法特点Service在后台无限期运行,直到被明确停止;调用者与Service之间无绑定关系onCreate()、onBind()、onUnbind()(可选)、onDestroy()Service与调用者绑定在一起,形成客户端-服务器关系;调用者销毁或解绑时,Service可能会停止(取决于是否还有其他startService()请求)了解这些差异有助于开发者根据应用的需求选择合适的Service启动方式,并有效地管理Service的生命周期。原创 2024-07-30 17:39:37 · 376 阅读 · 0 评论 -
ViewModel相关
ViewModel不仅是Activity和Fragment的数据集中管理和通讯,也是促进了MVVM和MVI架构规范,此文为深入理解ViewModelViewModel 不仅仅解决了因为页面配置改变而丢失数据的问题,而且承担了数据载体和业务处理等与界面无关的职责,降低了业务、数据和UI的耦合度。更大程度上促进了MVVM以及MVI架构的成熟和发展。开发者更应该了解背后的相关原理,不管在面试还是在使用都胸有成竹。原创 2024-07-30 17:11:55 · 896 阅读 · 0 评论 -
WebView的优化
在Android应用开发中,WebView是一个常用的组件,用于在应用中展示网页内容。然而,WebView的启动速度和性能可能会影响用户体验,特别是在一些性能较低的设备上,性能提升,能提升应用的响应速度和用户体验。ps :单进程webviewActivity,全局webView等等。原创 2024-07-25 11:39:45 · 887 阅读 · 0 评论 -
Activity A跳转Activity B,再按返回键,生命周期执行的顺序
startActivity(Intent) 的底层实现是将 intent分解成任务,传递到mainLooper 轮询的队列中,最终由主线程执行。所以跟由哪个线程调用一点关系都没有的。在子线程中是不可以进行UI操作更新,但同时不要误以为不可以进行startActivity() ,进行界面跳转。如果是dialog呢,生命周期不会变,因为dialog是add到当前window的。横竖屏切换 本质上就是关一个开一个,关完了开,同样是 A都恢复了 B再继续Stop。也就是B可见了 A才会stop。原创 2024-07-24 16:22:15 · 323 阅读 · 0 评论 -
Flow 基础使用相关
数据流是一种数据处理方式,数据被异步 连续传输和处理,像水从高处流到低处,流的过程中可以处理水,过滤加糖 加热等的,下流是消费端,直接消费喝掉就行。原创 2024-07-19 18:20:19 · 536 阅读 · 0 评论 -
Activity的启动流程
最早的进程 ,通过脚本 init rc拉起负责zygote serviceManager sufacefinger mediaService守护其他进程init进程创建Zygote进程,创建了虚拟机和start方法,启动Zygote进程java层 通过JNI调用ZygoteInit的main方法,进入Zygote的java框架层预加载资源 Android。jar。openGi 为了后面共享。原创 2024-07-23 18:29:37 · 954 阅读 · 0 评论 -
Recyclerview 滑动相关
都是view的方法,实现的是view内容的滑动,view本身没有动,而是控件上绘制的内容在控件范围内滑动。RecylerView的实现,区别 to是根据初始位置为尺,by是根据当前位置为起点。原创 2024-07-17 16:15:44 · 184 阅读 · 0 评论 -
onSaveInstanceState(),onRestoreInstanceState的调用时机 恢复数据和OnCreate的区别
用onRestoreInstanceState方法恢复数据,可以决定是否调用父类的onRestoreInstanceState方法super.onRestoreInstanceState(savedInstanceState);因为onSaveInstanceState 不一定会被调用,所以onCreate()里的Bundle参数可能为空,如果使用onCreate()来恢复数据,一定要做非空判断。因为activity没有被系统回收,因此onRestoreInstanceState没有被调用。原创 2024-07-24 15:53:17 · 666 阅读 · 0 评论 -
activity的启动模式和使用场景
设置方式:清单文件设置:android:launchMode=“singleTop”启动设置flag :intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);原创 2024-07-24 16:07:52 · 229 阅读 · 0 评论 -
Retrofit 相关
1.Retrofit是什么Retrofit 通过 java 接口以及注解来描述网络请求,并用动态代理的方式生成网络请求的 request,然后通过 client 调用相应的网络框架(默认 okhttp)去发起网络请求,并将返回的 response 通过 converterFactorty 转换成相应的数据 model,最后通过 calladapter 转换成其他数据方式(如 rxjava Observable)原创 2024-07-05 09:29:46 · 238 阅读 · 0 评论 -
一个有优先级出来的自定义线程池
先创建一个线程池val mPoolExecutor: ExecutorService =ThreadPoolExecutor( 3, 3, 60, TimeUnit.SECONDS, PriorityBlockingQueue<Runnable>())创建一个可排序的 Runnable abstract class Orderl...原创 2020-03-29 22:10:04 · 301 阅读 · 0 评论 -
Zygote进程的基础流程
Fork是什么,Fork是孵化子进程的方法,优势是快,创建一个父进程的副本,继承内存布局,环境变量,打开文件的描述符,也就是子进程和父进程会共享很多数据,内核只需要创建很少的数据就可以,还有个。可调用java代码的native线程,需要JNIEnv对象来调用java,拦截就是为把JNIev对象交给他,JNIEnv是每个进程都有的,解析出来的 参数64 需要start systemserev 或者加载资源相关的,32不需要,因为32用的很少,不需要浪费。:共享的数据当被改变了才会拷贝复制;原创 2024-07-12 13:54:17 · 610 阅读 · 0 评论 -
巩固一下 Android知识
SharedPreferences 相关是个轻量级的存储类,可以存基本类型数据,本质是写到了硬盘上的一个xml文件,从 data 包名的路径直接能进去找到,随便一个 Root 过的手机就能读取数据,安全性较低。翻看源码是其本质都是存储为了 String 类型保存,所以我们可以封装一下更方便用,object 类型可以转 json 格式来上传, getSharedPreferences 是走 ...原创 2020-03-29 12:54:00 · 182 阅读 · 0 评论 -
Android 的那些奇奇怪怪的问题
那些奇奇怪怪的问题ConstraintLayout 预览显示不了不止ConstraintLayout,还有其他的 androidx 的问题,其实很诡异,上午没事下午就预览不了了,结果更新版本解决了看到日志是 class 类有问题 样式加载不了TextView 换行不生效,inputType导致第一天正式写ConstraintLayout,遇到问题就把问题想成了 ConstraintLay...原创 2020-03-24 15:13:09 · 214 阅读 · 0 评论