android framework
文章平均质量分 86
wildlily8427
这个作者很懒,什么都没留下…
展开
-
发送未受保护广播
在做项目过程中,在应用发送自定义广播,看到日志报错“Sending non-protected broadcast xxxxxxx from system xxxxxxxxxx”,但是不会影响广播的发送和接收,查看资料为了广播安全,提醒 系统应用开发者去将 broadcast添加为protected-broadcast,因为非 protected-broadcast 广播是可以被三方应用发送的。而定义为 proected-broadcast 就能防止恶意的三方应用模仿系统应用去发出该广播。原创 2023-05-25 14:31:38 · 1482 阅读 · 0 评论 -
android 源码-android四个层级与源码对应关系
****android系统架构:应用层(system app)、应用框架层(Java API Framework)、系统运行库层(native层)、硬件抽象层(HAL)、Linux内核层。一、应用层(system app)应用层就是App应用程序,这里包括了系统级内嵌的App和常规开发人员的非系统级的App。源码位置:/android/packages二、应用框架层(Java API Framework)应用框架层为开发应用程序提供常规的API,开发人员可以通过应用框架层开发应用,也可以称为J原创 2022-06-08 16:33:44 · 489 阅读 · 0 评论 -
跨进程通信-ContentProvider应用及工作原理
ContentProvider的使用一、ContentProvider创建流程创建一个自定义的ContentProvider,只需要继承ContentProvider类并实现六个抽象方法即可。onCreate:代表ContentProvider的创建,一般做一些初始化的工作;getType:用来返回一个Uri请求所对应的MIME类型(媒体类型,比如图片、视频等),如果不关注该选项,可以直接返回null或者“/”;剩下四个方法对应CRUD操作,即实现增删改查功能。根据BInder的工作原理,我们知道原创 2022-03-27 14:12:33 · 881 阅读 · 0 评论 -
androidP:IPC机制
一、Android中得多进程模式1、开启多进程模式在Android中使用多进程只有一种方法,那就是给四大组件在AndroidMenifest.xml中指定android:process属性。例如:获取进程pid、uid//activity.java private void getUid() { ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); App原创 2022-03-21 20:41:00 · 47 阅读 · 0 评论 -
androidP:Activity的生命周期和启动模式
一、Activity 的生命周期正常情况1、onStart() /onStop是从activity是否可见这个角度来回调的,而onPause/onResume是从activity是否位于前台(交互)这个角度来回调的。2、当前activity为A,启动activityB生命周期调用流程:onPause(ActivityA)->onCreate(ActivityB)->onStart(ActivityB)->onResume(ActivityB)->onStop(Activit原创 2022-03-19 00:02:41 · 324 阅读 · 0 评论 -
androidP: View的事件体系-view的事件分发机制
androidP: View的事件体系-view的事件分发机制原创 2022-03-10 16:40:31 · 200 阅读 · 0 评论 -
2022最新安卓中高级面试题集(二):Activity启动过程
通过文档学习activity(app)的启动流程,注意本文源码基于androidP版本。一、android系统的启动在android系统里面,zygote是一个进程的名字。android是基于linux system的,当android设备开机时,linux的内核加载完成之后就会启动init进程。在linux system里面,所有的进程都是由init进程fork出来的,zygote进程也不例外。每一个app都是一个单独的dalvik虚拟机,是一个单独的进程,所以当系统里面的第一个zygote进程运原创 2022-02-15 13:50:47 · 444 阅读 · 0 评论 -
androidP: View的工作原理-自定义View
一、自定义View分类1、集成View重写onDraw这种方法主要用于实现一些不规则的效果,即这种效果不方便通过布局的组合方式来达到,往往需要静态或者动态地显示一些不规则的图形。即重写onDraw方法。采用这种方式需要自己支持wrap_content,并且padding也需要自己处理。2、集成ViewGroup派生特殊的Layout这种方法主要用于实现自定义的布局,即除了LinerLayout \RelativeLayout\FrameLayout这几种系统的布局之外,我们重新定义一种新布局,当某种原创 2022-03-03 16:11:37 · 189 阅读 · 0 评论 -
androidP: View的工作原理-View的工作流程
通过上文 androidP: View的工作原理-理解MeasureSpec(https://blog.csdn.net/zhuowalun8427/article/details/123224642)已经获取到普通View与DecorView的MeasureSpec,后面根据MeasureSpec进行View的三个流程**measure(测量):**确定View的测量宽/高;**layout(布局):**确定VIew的最终宽/高和四个顶点的位置;**draw(绘制):**将View绘制到屏幕上。一原创 2022-03-02 16:40:09 · 86 阅读 · 0 评论 -
androidP: View的工作原理-理解MeasureSpec
参考链接https://blog.csdn.net/carson_ho/article/details/94545178?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_v31_ecpm-7-94545178.pc_agg_new_rank&utm_term=android+measurespec.makemeasurespec&spm=1原创 2022-03-02 14:23:49 · 89 阅读 · 0 评论 -
Android9:Launcher的启动流程
目的:之前有总结怎样去掉系统默认的Launcher应用,替换为自己想要的Launcher应用。该篇博客主要针对该问题学习系统开机后Launcher应用的启动流程。参考的博文:https://www.jianshu.com/p/35e66fe56a58https://developer.android.google.cn/training/articles/direct-boot.html?hl=zh-cn(注:该博文的内容与上述两篇博文内容相同,只是为了让自己把思路理清楚而已)一、预备知识:“直接原创 2020-07-28 16:24:49 · 146 阅读 · 1 评论 -
framework:Android9 替换系统自带得Launcher界面并屏蔽多用户机制
概述:前面已经已经下载源码,将源码成功烧录到开发版(程序编译命令选择lunch mek_8q_car-userdebug带有车机接口),开机后第一个画面为多用户选择界面(并不是activity),选择主用户按钮后,进入系统默认得Luncher界面,对于产品需求需要屏蔽掉多用户机制界面,并且将Luncher界面修改为自己得Luncher界面。一、屏蔽多用户机制。1、查看当前设备支持得最大用户个数。源码位置:由于我编译得系统为车机系统,则源码位置为:packages/services/Car/car_p原创 2020-07-03 14:06:07 · 225 阅读 · 1 评论