
Framework
文章平均质量分 78
千里马学框架
安卓架构师,安卓技术专家,android framework
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
安卓app/framework开发中meta-data数据剖析作用及实战
meta-data其实无论在普通app开发还是系统开发过程中都是非常重要的,可以在app的AndroidManifest中配置相关的自定义数据,然后在代码中可以获取到AndroidManifest配置的meta-data数据,不仅仅app进程自己可以获取到这个数据,其他进程也可以获取到这个meta-data数据,这样对于系统识别一些Activity特性时候就提供了重要的依据。原创 2024-12-22 22:48:46 · 827 阅读 · 0 评论 -
AAOS上桌面CarLauncher车载显示壁纸Wallpaper
在车载开发过程中,学员朋友就有提到一个非常常见的问题,那就是如何让车载CarLauncher可以有显示壁纸的功能,因为默认的车载AAOS并没有发现有相关的壁纸功能,直接连相关wallpaper服务都没有启动。原创 2024-08-20 16:01:45 · 707 阅读 · 0 评论 -
android系统中data下的xml乱码无法查看问题剖析及解决方法
高版本安卓主要是考虑到使用二进制xml1、二进制xml的性能方面速度比传统xml快2、占用数据体积比传统xml要小以上两个优势就是使用二进制xml根本原因,系统默认二进制xml也是可以通过标志位修改变成普通xml,但是要清除数据重新生成,想要二进制xml直接变成普通xml需要对原来的二进制xml进行解析后重新写入新的普通xml更多framework详细代码和资料参考如下链接其他课程七件套专题:点击这里更多framework假威风耗:androidframework007。原创 2024-08-07 14:56:41 · 1329 阅读 · 0 评论 -
安卓开机启动性能优化之-bootchart相关工具使用及查看
开机启动相关的详细信息,一般都是可以通过logcat中查看boot_progress相关查看,这种方式查看相对不那么方便,毕竟开机过程中涉及的进程较多,要查看也较多,而且还经常需要查看代码才可以对应起来,但有另一种方式可以通过看bootchart方式更加直观。最重要就是把pybootchartgui直接变成~/demos/bootchart/pybootchartgui.py。打包好成了 bcl.tar.gz文件,再进行导出用bootchart.jar进行解析生成图片。原创 2024-07-25 15:23:34 · 1549 阅读 · 0 评论 -
systemserver为啥很少同步跨进程调用app/DeadSystemException相关问题分析套路
基于上面分析那就基本上明白了导致系统死锁的直接原因,那就是因为systemserver发起了个同步的跨进程调用,这个跨进程调用半天没有得到对方回应,导致systemserver一直卡在这个同步调用这里。原创 2024-04-30 11:03:01 · 1533 阅读 · 0 评论 -
千里马2023年终总结-android framework实战
2023年开始全职做课程后,有了更多时间投入到framework的课程研发,可以把在公司里面的很多丰富经验都放到课程中来分享给大家。大专题课程都是经过非常严格的调研,主要调研因素有以下几个:1、这个专题课程马哥自己是不是有这方面比较深入的经验分享,比如马哥经常在公司里面处理wms闪黑等疑难问题,这类经验属于不太可能从网络学得到的,也基本上很少程序员知道也不可能外传的有用“绝招”,这种在我课程里会毫无保留地分享给大家。原创 2023-12-31 02:38:46 · 2303 阅读 · 2 评论 -
StatusBar、NavigationBar窗口显示在Activity下面之aosp14窗口类bug线索征集
近来的国际学员又有个窗口类bug求助马哥。这次的bug现象就不是说什么黑屏啥的,是一个窗口有覆盖的情况。这个需要有代码详细打出相关的堆栈进行准确定位寻找根本原因,所以这里就需要各位有条件学员兄弟帮忙啦。不过比较遗憾是现在我们还没有aosp14的有源码的真机,因为这个bug还必须要真机。所以我这边暂时没有复现这个bug的条件,所以这里需要广大粉丝朋友们公司有aosp真机代码的兄弟可以帮忙提供线索。,都可以滴滴我哈,或者发群里,很多学员们就喜欢这种有难度和技术含量的bug来锻炼自己能力。国际学员提供复现视频。原创 2023-12-14 00:48:44 · 1441 阅读 · 0 评论 -
binder线程安全即读取线程池部分剖析
即只需要简单看看多个client 请求时候服务端onTransact的调用情况,如果说多个client请求onTransact方法还是按顺序一个个请求执行,那么就代表是线程安全的,如果onTransact方法出现多个同时执行,那么就代表非线程安全,这里需要针对onTransact的方法做一点特殊处理,即要在onTransact中故意加一个耗时延时,让onTransact执行时间久一点,那样方便验证,不然可能存在onTransact执行太快无法确认的情况。原创 2023-12-06 11:44:46 · 1153 阅读 · 0 评论 -
android Q /R/S/T onTopResumedActivityChanged方法解析
简单说就是新版本android多个activity可以同时resumed状态了,比如分屏,自由窗口,多屏display等,但是一般最后最顶部resumed的activity获取用户焦点,有了这个回调就方便activity自行控制一些自己的资源释放和获取。即有wm_on_top_resumed_gained_called和wm_on_top_resumed_lost_called相关打印,第一次看到时候还是很疑惑这个东西到底是干啥的?为false代表已经不是最顶部的resumed的activity了。原创 2023-06-27 15:19:54 · 1625 阅读 · 0 评论 -
SurfaceFlinge/InputFlinger分析-android画面缩放后依然点击正常原理分析
hi,粉丝朋友们:这两天刚好在做自由窗口相关国内需求,刚好遇到一个疑惑,那就是画面进行缩放后发现依然触摸画面可以正常反映问题。原创 2023-06-16 11:23:26 · 1907 阅读 · 1 评论 -
android framework面试经验分享
hi,粉丝朋友们!大家好!近来有很多学员粉丝都经常问framework面试的一些经验。原创 2023-06-06 11:05:33 · 1016 阅读 · 2 评论 -
aosp12 framework重大bug:contentprovider获取低概率偶现延时10s问题修复经验分享
在android12的版本上,陆陆续续发现一个低概率偶现的问题,那就是桌面第一次启动会存在显示空白10s以上,正常空白一般在1-2s,在个空白10s以上确实就属于非常严重的问题,但这个是一个低概率偶现问题,而且只有一例,所以说一直也没有引起重视。直到陆续确实有测试都报有这个同样问题,这个时候就开始要着力重点解决,这里分享一下针对这种低概率偶现问题的处理方式,这种方式适合所有framework端的一些低概率的偶现问题解决。3、只要可以概率复现,和测试合作复现,就不断的加日志缩小范围,追踪到根本原因。原创 2023-06-02 12:16:23 · 879 阅读 · 0 评论 -
aosp11/12/13 壁纸高斯模糊,毛玻璃SurfaceFlinger层面原理-第二节千里马framework实战
hi,粉丝朋友们!上一个blog已经详细讲解了系统中自带相关接口实现窗口的高斯模糊相关效果,具体点击这里。原创 2023-05-20 16:55:28 · 1166 阅读 · 0 评论 -
android13 FLAG_BLUR_BEHIND 壁纸高斯模糊,毛玻璃背景方案设计-千里马framework实战
这个FLAG_BLUR_BEHIND属于LayoutParams注释就是说FLAG_BLUR_BEHIND就会让在该window下面的window进行模糊具体如果要使用:其实就是对window的LayoutParams设置这个flag同时还有另一个方法setBlurBehindRadius大家都知道高斯模糊都有一个模糊滤镜,这代表模糊的程度,一般mBlurBehindRadius越大模糊层度越厉害。原创 2023-05-19 16:49:54 · 2176 阅读 · 4 评论 -
android 13 Zygote fork新的app进程源码分析-车载车机手机framework实战开发
哈哈,注意一般app都是走Zygote.forkSimpleApps这个,但是你要是对这个方法直接打印会发现它并不是个一次性方法,进入后马上出来,这里forkSimpleApps方法名字其实和它的实际行动不太搭,所以这里大家特别注意不要被它的名字迷惑,以为每次 fork新的app进程,这里就会进入一次forkSimpleApps。开发时候,使用的是最新android13代码的,相比以前的版本这块Zygote fork新进程还是有较大的差异。上图就是老版本的一个fork情况。原创 2023-05-13 00:07:11 · 670 阅读 · 0 评论 -
千里马framework学习跨进程实战课程学员疑问解答:ClassNotFoundException when unmarshalling
hi,粉丝朋友们!原创 2023-05-12 22:41:13 · 1438 阅读 · 0 评论 -
WinScope实现录制视频与是Timeline时间轴同步设置方法-千里马framework车载手机系统开发实战
用到winscope工具,提出一个疑问,就是google官网说的有录屏可以结合起来一起看原创 2023-04-25 00:40:14 · 1557 阅读 · 2 评论 -
aosp11/12/13 framework源码开发IDE工具之idegen/aidegen/AIDEGen详细使用
近期又粉丝朋友聊到了如果做aosp系统应用开发,有什么工具或者方式来导入代码可以正常跳转和代码提示等?原创 2023-04-14 16:56:42 · 4319 阅读 · 4 评论 -
android framework实战车机手机系统开发环境相关问题补充
make出错,然后再把frameworks/base/cmds/bootanimation/Android.mk又修改正确恢复原样,再进行make时候就会重新加载新加入的Android.mk。原因:如果确认已经拷贝了文件夹到了源码根目录这个其实是因为android8.1上面热编译没有触发全局重新扫描mk文件。去frameworks/base/cmds/bootanimation/Android.mk文件中故意加一个错误字符。2、如果使用vmware工具,请需要vmware中也开启相关加速开关。原创 2023-04-14 15:06:50 · 698 阅读 · 0 评论 -
android 12/13 分屏设置Task的Bounds区域-系统车机开发必学
这里面进行对应分屏相关的一个业务处理, 比如分割线拖拽对两个分屏大小影响等。最后都会通过包装成WindowContainerTransaction对象,再通过WindowOrganizerController的本地代理,跨进程传递到systemserver的WindowOrganizerController类中进行处理.hi,近来研究分屏时候发现android 13上的分屏和以前的分屏代码差别比较大。最后就是调用的windowConfiguration.getBounds。其实Task的Bounds就是。原创 2023-02-13 22:47:32 · 2076 阅读 · 0 评论 -
安卓车机系统adb shell cmd 源码原理分析
这里大家如果学习过跨进程专题应该非常熟悉这个,可以看到最后其实是构造了一个Parcel调用了transact方法进行传递,当transact调用完成后就会到服务端的transact再调用到onShellCommand。然后他就会触发对应服务的onShellCommand方法,这个时候相当于和dumpsys命令非常类似,dumpsys命令是会触发到对应的服务的dump方法。1、解析出cmd命令后面的服务字符,根据这个服务字符去servicemanager寻找对应service,返回对应的BpBinder。原创 2023-01-14 00:05:35 · 2173 阅读 · 0 评论 -
aosp 12/13/lineageos19.1 framework学习编译刷入小米手机,努比亚
hi,学员朋友,大家好!前期一直有同学在问我这边,学习framework需要什么额外设备么?这里其实我一直前期也是给学员说的,如果你是个新手,刚刚开始可以不用,完全可以跟着学习,用课程里面的模拟器。哈哈资格模拟器不要钱,也不存在变砖的可能性。原创 2022-12-25 23:10:37 · 5571 阅读 · 2 评论 -
clearCallingIdentity与restoreCallingIdentity-千里马framework系统源码实战详解
hi,粉丝朋友大家好:今天带大家来学习一个系统开发过程中大家即“熟悉”又陌生的两个方法,分别是clearCallingIdentity和restoreCallingIdentity,一般他们是成对出现在我们的framework代码中,但大家平时分析源码时候好像并没有在意他的真正作用是什么?为啥在框架代码分析时候可以看到他的大量出现?原创 2022-10-27 00:20:42 · 1101 阅读 · 0 评论 -
Android 12中系统Wallpaper详解1--锁屏透看壁纸和桌面透看壁纸的切换
那么其实我们可以猜测是不是锁屏window会去动态改变自己的FLAG_SHOW_WALLPAPER属性,在有桌面显示时候锁屏的window实际是没有这个属性,在锁屏状态下是有这个属性。先看桌面情况下壁纸,这个情况应该属于我们最为熟悉的,那么就不用多说,大概就是因为桌面Activity的配置主题xml设置一个类似showallpaper的属性既可以,就可以让桌面后面显示壁纸了。这个窗口在系统中有专门类进行他的显示情况,那就我们的WallpaperController类。前面疑惑中就写到正常应该是桌面。原创 2022-10-24 00:23:59 · 6898 阅读 · 0 评论 -
android 12 framework开发第53节-Activity的reLaunch及onConfigurationChanged android源码分析
今天要给大家分享内容就是我们应用开发时候经常会遇到问题,那就是如果系统一些属性变化了,比如语言,横竖屏幕,深色模式等。就会导致系统当前的TopActivity会进行destory后进行重新create情况。如果不想要reCreate Activity那么我们就需要到AndroidManifest中去声明对应的configChange,这个 时候就会让Activity不重新reCreate,即Activity可以不需要重建,但是Activity就会执行对应回调onConfigurationChanged。原创 2022-08-21 11:08:09 · 2841 阅读 · 2 评论 -
Android跨进程通信Client Crash后Server端onDestroy
hi,粉丝朋友大家好!好久没有给大家写blog了,哈哈,这里说声抱歉!实在家里比较忙,今天就来给大家分享一个跨进程专题课中学员问的一个问题,blog就来解答一下这个问题。原创 2022-07-23 00:51:39 · 1239 阅读 · 1 评论 -
手把手教你aosp android 12 pixel 解锁oem 编译刷入大全
hi,因为同学们学完了我的课程后,开始想玩一下google的pixel实体机,不想一直玩模拟器了,那么千里马老师今天也在咸鱼上掏了一个pixel 3来给大家展示一下这个google的机子怎么玩,其实我自己本身是有小米的lineage系统在玩,为了满足广大粉丝的好奇心也就自掏腰包买了个pixel玩,下面我们正式开始记录整个pixel 3的刷入自己编译修改的aosp代码:入门课,实战课,跨进程专题,input专题ps需要学习深入framework课程和课程优惠新课程优惠获取请加入qq群:422901085原创 2022-06-13 23:58:01 · 11084 阅读 · 0 评论 -
android 11/12的 framework 框架systemserver源码中的AMS和WMS部分ProtoLog相关log的开放命令
在高版本android源码中,在分析AMS和WMS源码时候经常会看到如下的log打印:这里看着也是个log打印,但是它又不是我们常见的Log.i(“”,“”);或者Slog.i(“”,“”)是可以直接通过logcat命令就可以看到对应的log打印,但是这种ProtoLog类型的log我们发现logcat并不可以直接看到那具体要怎么样才可以看到呢?下面我们就来讲解一下ProtoLog相关的log如果要通过logcat方式查看要怎么操作呢?1、使用wm相关命令这里XXX_TAG要替换成ProtoLog原创 2022-06-12 22:53:35 · 2174 阅读 · 0 评论 -
android P/Q/R/S 9/10/11/12多任务手势动画OverviewInputConsumer情况-第二节
hi,多任务手势分析了OtherActivity的情况,这一节来分析一下在桌面本身就是前台情况下,进入多任务的源码及情况分析。首先来看看原生aosp上多任务的2个过程:[入门课,实战课,跨进程专题,input专题](https://ke.qq.com/course/package/51285?tuin=7d4eb354)ps需要学习深入framework课程和课程优惠新课程优惠获取请加入qq群:422901085(获取demo源码)这个过程就是我们还处于手指底部上划过程,这个还是用个自己绘制的图好展原创 2022-06-02 23:46:31 · 1695 阅读 · 1 评论 -
android studio导入android系统源码 development/tools/idegen/idegen.sh执行报错
1、make idegenbuild completed successfully (32 seconds)2、执行 development/tools/idegen/idegen.sh脚本test@test-Lenovo:~/aosp$ development/tools/idegen/idegen.sh find: 'out/target/product/emulator_x86_64/root/d': Permission denied这里大家看到这里Permission denied很原创 2022-05-16 21:25:07 · 3072 阅读 · 1 评论 -
Ubuntu 16G内存在android系统 10/11/12/13编译 framework时候经常oom内存不足,电脑卡死解决办法stubs-docs-non-updatable metalava
hi粉丝朋友们:在android高版本编译时候经常会遇到framework一个相关任务编译时候经常把内存吃满://frameworks/base:system-api-stubs-docs-non-updatable metalava merged导致oom即内存不足这种,那么怎么解决呢在不加内存条情况下Android手机大厂Framework系统-Input系统专题实战课https://ke.qq.com/course/4963459[入门课,实战课,跨进程专题ps需要学习深入framewo原创 2022-05-15 09:56:44 · 3860 阅读 · 10 评论 -
android framework高级开发-多屏异显触摸Presentation相关实战demo
hi,各位粉丝朋友大家好!近来有同学问到对于安卓的多屏异显相关问题,具体有时间也来给大家做个简单的多屏异显demo其他就不多说了,下面就开干:Android手机大厂Framework系统-Input系统专题实战课https://ke.qq.com/course/4963459[入门课,实战课,跨进程专题ps需要学习深入framework课程和课程优惠新课程优惠获取请加入qq群:422901085(获取demo源码)1、双屏模拟因为手机一般没有两个屏幕,所以这种硬件设备还比较难找,但是and原创 2022-05-08 23:32:53 · 2086 阅读 · 2 评论 -
千里马android framework开发解决Accessing hidden method限制,让应用访问隐藏方法(需要可以修改系统源码方案)
hi,粉丝朋友们大家好!今天来给大家分享一下,就是经常大家会做安卓系统开发工作问到一个问题,那就是我如果framework代码中增加了一个方法啥的,但是我又不想公开给第三方应用知道,只想让我系统的应用知道,那该怎么办呢?其实这个时候经常就会用到一个hidden的标签,来代表这个方法是隐藏方法,隐藏方法就是给系统内部用的,意味着第三方app就无法使用。这个其实也很常见,自从android p开始android系统就开始对访问hidden的限制越来越严格,虽然我们网络上有各种奇葩招来逃避不允许调用hidden原创 2022-04-27 00:29:09 · 11289 阅读 · 5 评论 -
Android Framework实战预制packages/apps下应用APK预制使用Android.bp方式
hi粉丝朋友大家好!以前在android framework入门课讲解过第三方应用apk的预制相关内容,那时候是基于Android 8.1的Android.mk,但大家依旧对Android.bp的预制不知道怎么做,所以很多粉丝经常私下问我,干脆这里给大家blog分享,这里我们来使用Android.bp进行预制,因为现在高版本大部分其实都是使用Android.bp,新版本packages/apps下面android 12几乎看不到Android.mk的身影,所以当然我们也需要与时俱进。但是Android.b原创 2022-04-19 12:07:08 · 3181 阅读 · 0 评论 -
Android Framework实战预制packages/apps下应用源码预制使用Android.bp方式
hi粉丝朋友大家好!上节课也给大家讲解了Android.mk方式我们桌面把Android Studio的gradle过程桌面预制到了系统源码的packages/apps下面,这里我们来使用Android.bp进行预制,因为现在高版本大部分其实都是使用Android.bp,新版本packages/apps下面android 12几乎看不到Android.mk的身影,所以当然我们也需要与时俱进。但是Android.bp相对来说资料较少,不像以前的Android.mk可以继承很多linux的makefile,所原创 2022-04-19 00:02:07 · 2913 阅读 · 0 评论 -
Android Framework开发之新加一个app源码到packages/apps编译Android.mk配置
hi,粉丝朋友们大家好!近来有朋友反馈在看我的android framework实战开发合集课程时候 (https://download.csdn.net/combo/detail/2202)需要购买可以参考直接找千里马最优惠:https://blog.csdn.net/learnframework/article/details/124086882反馈一个问题,那就是课程确实讲解了怎么预制apk的,但是否可以考虑补充讲解一下如果想增加一个app但是不是apk预制,而是源码增加的方式,即相当于我想把工原创 2022-04-16 23:13:33 · 3758 阅读 · 0 评论 -
android framework手机系统改机相关知识简单方案
hi粉丝朋友们大家好!近来有些粉丝朋友问我改机相关怎么玩,其实这个我一直觉得有点拿不出台面,害怕大家干坏事。。。哈哈,也许我想多了,我是个程序员技术上研究而已,我自己不干坏事就行。android手机改机其实是一个比较偏门的领域,但是市场需求好像还比较大,比如很多那种群控工作室。1、主流改机方案主要有2种:1.静态改机即这种就和我们手机一样,刷入出厂厂商就有机型等信息,刷入就不可以改变,这种改变的就是 系统机型相关ro类型的prop,需要改变只能重新编译代码修改都以小米5的lineage版本(这原创 2022-04-15 00:14:18 · 1992 阅读 · 0 评论 -
Android系统Input专题源码分析视频课程/千里马Framework/InputDispatcher/InputReader/模拟触摸事件
hi,亲爱粉丝朋友们:在粉丝朋友们强烈的支持下,千里马的Android Framework实战专题系列的-- Input专题课程已经杀青,千里马依旧坚持着,基础与实战结合的宗旨,让大家切身在实战中学习framework相关知识,配合案例实战训练,来进一步巩固相关知识,减低大家学习framework的难度,也提供给大家真正的企业级别开发的framework实战案例。程序员也唯有脚踏实地去跟着千里马老师课程一步步一节节的学习,跟着课程走一遍,每一步自己也去做了,深刻理解了,有问题问老师了,自己才可以算是真正意原创 2022-04-13 23:00:30 · 1628 阅读 · 1 评论 -
千里马 android framework之MotionEvent.ACTION_CANCEL怎么产生-讨厌的android触摸面试题
hi,粉丝朋友!大家对于MotionEvent.ACTION_CANCEL这个cancel事件是不是感觉又熟悉又陌生,熟悉是因为经常在onTouch识别触摸事件时候会把它和ACTION_UP放在一块处理,基本停留在字面意思理解为 “”取消“”新课程优惠获取请加入qq群:422901085Android手机大厂Framework系统-Input系统专题实战课[入门课,实战课,跨进程专题ps需要学习深入framework课程和课程优惠ACTION_CANCEL触发场景和原因:customTextV原创 2022-04-10 22:35:49 · 2003 阅读 · 1 评论 -
android framework InputManager模拟触摸事件inject详解实战开发-视频课程笔记
我相信触摸事件注入,即模拟触摸事件绝对是最受我们android开发者喜欢的,想想你程序可以自由的模拟出你的点击事件了,你就完全可以不用在手动了,可以帮你干各种各样的事。但是同学们可能对模拟触摸事件使用及其原理其实并不是非常了解,大部分都可能是基于使用级别的居多,至于使用过程中可能出现的问题,及模拟触摸事件本质上在android系统中的一个原理,其实大部分都不是很清楚,所以本节课就来带大家去深入了解这个模拟触摸事件相关的,这个blog当然只是课程的部分课件截图,需要更清楚认真可以看我的相关视频原创 2022-04-03 11:05:50 · 3417 阅读 · 1 评论