andoid
文章平均质量分 72
Android高级知识分享官
安卓技术专家
展开
-
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-25 16:58:50 · 1391 阅读 · 0 评论 -
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-25 16:59:23 · 756 阅读 · 0 评论 -
android framework高级开发-多屏异显触摸Presentation相关实战demo
hi,各位粉丝朋友大家好!近来有同学问到对于安卓的多屏异显相关问题,具体有时间也来给大家做个简单的多屏异显demo其他就不多说了,下面就开干:Android手机大厂Framework系统-Input系统专题实战课https://ke.qq.com/course/4963459[入门课,实战课,跨进程专题ps需要学习深入framework课程和课程优惠新课程优惠获取请加入qq群:422901085(获取demo源码)1、双屏模拟因为手机一般没有两个屏幕,所以这种硬件设备还比较难找,但是and转载 2022-05-25 16:58:30 · 808 阅读 · 0 评论 -
千里马android framework开发解决Accessing hidden method限制,让应用访问隐藏方法(需要可以修改系统源码方案)
hi,粉丝朋友们大家好!今天来给大家分享一下,就是经常大家会做安卓系统开发工作问到一个问题,那就是我如果framework代码中增加了一个方法啥的,但是我又不想公开给第三方应用知道,只想让我系统的应用知道,那该怎么办呢?其实这个时候经常就会用到一个hidden的标签,来代表这个方法是隐藏方法,隐藏方法就是给系统内部用的,意味着第三方app就无法使用。这个其实也很常见,自从android p开始android系统就开始对访问hidden的限制越来越严格,虽然我们网络上有各种奇葩招来逃避不允许调用hidden转载 2022-05-25 16:58:14 · 2276 阅读 · 0 评论 -
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-05-25 16:58:03 · 816 阅读 · 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-05-25 16:57:51 · 525 阅读 · 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-05-25 16:57:38 · 847 阅读 · 0 评论 -
android framework手机系统改机相关知识简单方案
hi粉丝朋友们大家好!近来有些粉丝朋友问我改机相关怎么玩,其实这个我一直觉得有点拿不出台面,害怕大家干坏事。。。哈哈,也许我想多了,我是个程序员技术上研究而已,我自己不干坏事就行。android手机改机其实是一个比较偏门的领域,但是市场需求好像还比较大,比如很多那种群控工作室。1、主流改机方案主要有2种:1.静态改机即这种就和我们手机一样,刷入出厂厂商就有机型等信息,刷入就不可以改变,这种改变的就是 系统机型相关ro类型的prop,需要改变只能重新编译代码修改都以小米5的lineage版本(这转载 2022-05-25 16:57:28 · 1085 阅读 · 0 评论 -
Android系统Input专题源码分析视频课程/千里马Framework/InputDispatcher/InputReader/模拟触摸事件
hi,亲爱粉丝朋友们:在粉丝朋友们强烈的支持下,千里马的Android Framework实战专题系列的-- Input专题课程已经杀青,千里马依旧坚持着,基础与实战结合的宗旨,让大家切身在实战中学习framework相关知识,配合案例实战训练,来进一步巩固相关知识,减低大家学习framework的难度,也提供给大家真正的企业级别开发的framework实战案例。程序员也唯有脚踏实地去跟着千里马老师课程一步步一节节的学习,跟着课程走一遍,每一步自己也去做了,深刻理解了,有问题问老师了,自己才可以算是真正意转载 2022-05-24 12:57:39 · 241 阅读 · 0 评论 -
千里马 android framework之MotionEvent.ACTION_CANCEL怎么产生-讨厌的android触摸面试题
hi,粉丝朋友!大家对于MotionEvent.ACTION_CANCEL这个cancel事件是不是感觉又熟悉又陌生,熟悉是因为经常在onTouch识别触摸事件时候会把它和ACTION_UP放在一块处理,基本停留在字面意思理解为 “”取消“”新课程优惠获取请加入qq群:422901085Android手机大厂Framework系统-Input系统专题实战课[入门课,实战课,跨进程专题ps需要学习深入framework课程和课程优惠ACTION_CANCEL触发场景和原因:customTextV转载 2022-05-24 12:57:29 · 357 阅读 · 0 评论 -
android framework InputManager模拟触摸事件inject详解实战开发-视频课程笔记
我相信触摸事件注入,即模拟触摸事件绝对是最受我们android开发者喜欢的,想想你程序可以自由的模拟出你的点击事件了,你就完全可以不用在手动了,可以帮你干各种各样的事。但是同学们可能对模拟触摸事件使用及其原理其实并不是非常了解,大部分都可能是基于使用级别的居多,至于使用过程中可能出现的问题,及模拟触摸事件本质上在android系统中的一个原理,其实大部分都不是很清楚,所以本节课就来带大家去深入了解这个模拟触摸事件相关的,这个blog当然只是课程的部分课件截图,需要更清楚认真可以看我的相关视频新课程优惠获转载 2022-05-24 12:56:37 · 871 阅读 · 0 评论 -
android framework开发-Input中触摸圆点与触摸轨迹源码分析
其实我们在debug调试触摸相关时候经常会到开发者选项中开启小圆点,来方便定位我们的触摸手机屏幕的一个情况,下图就是小圆点的,那么我们就来分析这个小圆点到底是怎么展示出来的,随着我们android开发时间变长,只是调用API或者学个新的很快又会框架过时的框架比如以前推MVC,后面又推MVP,。。。。。等,远没有深入底层了解系统有技术沉淀,为啥?因为android操作系统本身代码的更新很慢,不会发生翻天覆地变化,基本Framework开发系统开发工程师在市场也很有需求,而不是普通app开发,架构和流行技术今天转载 2022-05-24 12:56:25 · 382 阅读 · 0 评论 -
android Input专题- Q/R/S 10/11/12 InputReader源码分析1
新课程优惠获取请加入千里马老师qq群:422901085上节课已经讲到了InputReaderThread和InputDispatchThread已经启动了,调用了对应的run方法,这里会导致对应的threadLoop方法执行:native/services/inputflinger/InputReaderBase.cppbool InputReaderThread::threadLoop() { mReader->loopOnce(); return true;}这里会调转载 2022-05-24 12:56:15 · 172 阅读 · 0 评论 -
android Input专题- Q/R/S 10/11/12 InputManager源码分析
Android手机大厂Framework系统-Input系统专题实战课https://ke.qq.com/course/4963459[入门课,实战课,跨进程专题ps需要学习深入framework课程和课程优惠新课程优惠获取请加入qq群:4229010851、SystemServer中InputManagerService创建与启动base/services/java/com/android/server/SystemServer.java private void startOther转载 2022-05-24 12:56:05 · 371 阅读 · 0 评论 -
android多指控制协议详细解答
类型部分:1.EV_SYN同步事件完,在事件开始或完成会有对应的code:0004:代表一个事件开始(不必要)0005:代表一个事件开始(不必要)SYN_REPORT:代表一个事件的结束 (必要)2.EV_ABS事件的一种绝对坐标类型对应code:2.0 ABS_MT_SLOT本质代表者不同手指,它的value代表手指id2.1 ABS_MT_TRACKING_ID类型B特有的,实际上,每个slot会和一个ID相对应,一个非负数的表示一次接触,-1表示这是一个无用的slot(或者理转载 2022-05-24 12:55:50 · 577 阅读 · 0 评论 -
android Input专题-getevent深入分析
Android手机大厂Framework系统-Input系统专题实战课https://ke.qq.com/course/4963459[入门课,实战课,跨进程专题ps需要学习深入framework课程和课程优惠新课程优惠获取请加入qq群:422901085hi,本节课我们来讲解一下经常做触摸相关开发同学都必须要掌握的一个命令:getevent下面将通过2个部分来分别讲解1、具体使用方法gemini:/ $ getevent -hUsage: getevent [-t] [-n] [-s转载 2022-05-24 12:55:38 · 398 阅读 · 0 评论 -
Input专题讲解-简单介绍Input相关课程流程图笔记
基于linux系统的触摸数据流向:InputReader职责图:整体触摸数据流向图:新课程优惠获取请加入qq群:422901085Android手机大厂Framework系统-Input系统专题实战课https://ke.qq.com/course/4963459[入门课,实战课,跨进程专题ps需要学习深入framework课程和课程优惠...转载 2022-05-24 12:55:26 · 93 阅读 · 0 评论 -
Android input专题--触摸事件中Split相关课程笔记
Android input专题–触摸事件中Split相关课程笔记应用层面Activity的Window最常见控制可以通过设置windowEnableSplitTouch在values/styles.xml中的theme中设置, 可将theme设置给Application或者Activity,但是这个属性控制的是Window的属性。<resources> <!-- Base application theme. --> <style name="AppT转载 2022-05-24 12:55:15 · 371 阅读 · 0 评论 -
千里马Android Framework-input系统专题blog目录集合
千里马Android Framework-input系统专题blog目录集合这里将会列出视频课程中所有的可能用的相关资料集合blog链接Input专题讲解-简单介绍Input相关课程流程图笔记https://blog.csdn.net/learnframework/article/details/123219376Android input专题–触摸事件中Split相关课程笔记https://blog.csdn.net/learnframework/article/details/12360013转载 2022-05-23 09:23:45 · 144 阅读 · 0 评论 -
Android 12 S artifact_path_requirements Offending entries Build failed ckati failed with/ aosp预制apk
粉丝朋友在学习我的课程内置应用时候,发现如果在Android 12 S上预制apk时候发现有编译不过情况,报artifact_path_requirements相关错误入门课,实战课,跨进程专题ps需要学习深入framework课程和课程优惠(可以加我qq:2102309716 优惠购买)具体错误显示如下:build/make/core/artifact_path_requirements.mk:26: warning: build/make/target/product/sdk_phone_转载 2022-05-23 09:23:37 · 1703 阅读 · 0 评论 -
android framework 系统native c/c++源码查看跳转工具-Ubuntu+VScode搭建
hi,粉丝朋友们大家好!~~ps需要学习深入framework(可以加我qq:2102309716 优惠购买)因为之前我的入门课程中已经对android系统源码环境进行了讲解!当时我们用的是as进行的,但是as对于我们java文件确实是比较友好的,跳转和修改代码提示等也非常方便。但是对于我们如果是修改native如c/c++相关代码时候,就显得非常不友好了,连基本的样式颜色变化都没有,所以这里我们如果开发native程序比较多,或分析相关代码比较多的话就还是需要找一个比较好的工具进行,其实普遍比较主流转载 2022-05-23 09:23:27 · 1883 阅读 · 0 评论 -
android P/Q/R/S 9/10/11/12多任务手势动画OtherActivityInputConsumer情况-第一节
hi,在手机屏幕屏占比越来越大的时候,用户对手机的屏幕交互体验也在提升,把原来的导航键3个按钮的交互方式,在android P产生了一个巨大的变化,增加了全面屏上导航手势的方式,后面版本也是在P的基础进行一些细微修改。入门课,实战课,跨进程专题ps需要学习深入framework课程和课程优惠(可以加我qq:2102309716 优惠购买)导航手势给人的用户体验也确实很不错,但是他的整套代码实现也是相当复杂的,今天我们对导航手势的OtherActivityInputConsumer情况来进行分析。1转载 2022-05-23 09:23:09 · 1783 阅读 · 0 评论 -
android framework开发之广播broadcast源码分析2-千里马
hi,上一节我们主要分析了broadcast的发送部分,本节我们来分析一下接受部分,即一般我们作为一个广播接受者是怎么一步步被AMS发送过来的信息的。一般我们注册成为一个广播监听接受者都是调用Context.java中的如下方法: public abstract Intent registerReceiver(@Nullable BroadcastReceiver receiver, IntentFilter转载 2022-05-23 09:22:55 · 283 阅读 · 0 评论 -
android framework开发之广播broadcast源码分析-千里马
hi,粉丝朋友大家好!今天是2-8号,也是我春节第一天正式开工的日子,在这里首先祝大家新的一年技术进步,与千里马共同学习共同进步,共同升职加薪。今天要给大家分享的一个课题是大家都很熟悉的广播。这里将要分为2个部分来对广播进行分析:入门课,实战课,跨进程专题ps需要学习深入framework课程和课程优惠(可以加我qq:2102309716 优惠购买)1、广播发送部分一般我们正常使用发送广播都会有调用一个context的sendBroadcas,方法原型如下: public void sen转载 2022-05-23 09:22:45 · 373 阅读 · 0 评论 -
Android10Q/11R/12S Service bindService系统源码分析1-千里马framework
背景hi,粉丝朋友们大家好!今天本来是想给大家写一下高级面试问题答案的,题目:如果一个进程自己调用自己的跨进程接口是否会通过binder,但是刚好这部分又要涉及到Service,那么就来给大家刚好源码级别分析一下bindService。首先贴出对应流程图:1、客户端调用bindService源码入门课,实战课,跨进程专题ps需要学习深入framework课程和课程优惠(可以加我qq:2102309716 优惠购买)一般我们发起bindService来绑定远程服务Service,调用如下:转载 2022-05-23 09:22:34 · 244 阅读 · 0 评论 -
android framework系统源码分析之dumpsys原理分析-千里马带你学framework
背景:hi,粉丝朋友们大家好!我们学习android framework实战开发过程中经常会用到一些辅助的shell命令,比如最经典就是我们常见的dumpsys啦,还记我给大家讲解的入门课,实战课,跨进程专题课其实都用用到这个命令;当时我只是给大家讲解怎么使用这种dumpsys一些命令,并没有给大家讲解它的一个原理,但是对于对android系统充满好奇小伙伴们,肯定不满足与简单使用,还是想搞明白他到到底什么原理,那么搞懂它到底有什么好处么?那当然是好处多多,我这里给大家主要罗列一下几点:1、分析出du转载 2022-05-23 09:22:14 · 823 阅读 · 0 评论 -
android studio调试debug 系统framework、systemserver方法-千里马带你学framework
hi,粉丝朋友们大家好!近来很多学员在说想要在android系统里面用android studio进行直接调试,针对这个需求其实我以前是确实有尝试的,包括前期破解鸿蒙系统和android关系时候也是有用到的。下面我来给大家介绍一下怎么在android studio调试我们的framework代码:1、首先肯定得搭建好源码的导入android studio,并且可以达到正常跳转的地步,这个部分可以看我之前的blog,或者看我的android framework入门课(可以加我qq:2102309716转载 2022-05-23 09:22:05 · 879 阅读 · 0 评论 -
adb shell am stack list命令调试查看ActivityManagerService相关属性详解
hi,学员们大家好,经常在做框架特别是ActivityManagerService模块开发过程中会使用一个命令来查看一些信息辅助我们看到系统目前的Activity的一个情况,主要包括Activity分布的Stack,Task情况。具体效果如下:test@test-Lenovo:~/xiaomi5/frameworks$ adb shell am stack listStack id=4 bounds=[0,0][1080,1920] displayId=0 userId=0 configuration转载 2022-05-23 09:21:51 · 439 阅读 · 0 评论 -
学习Android Framework可以做什么?
其实很多新的学员都会问学习Framework后到底在企业里面干什么?具体哪些工作是需要Framework层面进行修改的,市场需求量大不大。这个其实在我的课程第一节就有讲到相关的内容,即为什么要学习framework,具体可以看我的免费试看视频这次我们重点介绍是哪些工作是需要学习 Framework知识,这里主要分为2大块与大家分享,具体如下图:如果需要学习更多framework只是和视频可以b站关注:千里马学框架,购买课程最好加入422901085群里找千里马要优惠和答疑课程答疑和新课信息:QQ交转载 2022-05-22 21:58:30 · 444 阅读 · 0 评论 -
Handler ,MessageQueue 的Looper中epoll监听的fd
hi,同学们大家好!这些天有学员再群里问起了Handler中有个数据监听相关问题,学员有的认为Handler数据传递是靠流传递,误认为是epoll中监听的fd进行传递的,这个其实有必要更正这个学员的一个观点:1、handler的数据传递完全是在自己进程中,所以完全不需要什么fd的流来传递,就相当于一个全局变量一样,你需要通过什么socket什么来传递数据么,你直接内存变量就可以访问到2、那么学员就有疑问,那么handler looper说是基于epoll检测fd方式,epoll只是来监听回调通知作用,转载 2022-05-22 21:58:19 · 463 阅读 · 0 评论 -
ubuntu plugin android device/adb shell/error: insufficient permissions for device
在Ubuntu上面进行adb shell时报如下错误:error: insufficient permissions for device这个人家也给了一个google网站给我解决http://developer.android.com/tools/device.html这里我们记录一下怎么解决,方便后期又要百度:1、cd /etc/udev/rules.d/2、 sudo vim 51-android.rules3、加入如下,然后wq保存既可以SUBSYSTEM=="usb", E转载 2022-05-22 21:58:09 · 95 阅读 · 0 评论 -
Android源码中学习JNI那些事--关键技巧
hi,粉丝朋友们大家好:今天来给大家分享一下JNI的一个关键技术知识点,也是经常在JNI面试中会被面试问道一个问题,一般问题如下:“JNI开发中请问如果想要一个存native线程中执行的native方法需要调用到Java层应该要怎么做?”大家注意这个问题哈,是纯native线程和方法,即没有我们正常jni调用的env环境的,正常的如果jni方法是由java层调用到jni一般都是自带了JNIEnv变量如下:拿getMemInfo举例子,如:java层:public static native v转载 2022-05-22 21:57:55 · 204 阅读 · 0 评论 -
android源码编译输出日志到文本txt log
编译时候有时候terminal显示区域有限,有时候编译出错想要找一个编译错误原因可能在terminal上就比较麻烦,或者很可能缓存有限导致找不到根本错误,这个时候就需要我们把编的整个日志需要输出到一个文件中,具体命令:make 2>&1 | tee build.log 这里首先make不用介绍了,重点介绍2>&1和tee2>&1:在 bash 命令执行的过程中,主要有三种输出入的状况,分别是:标准输入;代码为 0 ;或称为 stdin ;使用的方转载 2022-05-22 21:57:46 · 764 阅读 · 0 评论 -
android framework项目开发案例-动态隐藏Launcher上图标2
上节课已经把代码写好了,可惜我们发现一点击就crash啦,因为CHANGE_COMPONENT_ENABLED_STATE权限需要系统权限才可以2021-12-17 23:09:15.078 4198-4198/com.android.things.privateapplication1 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.android.things.privateapplication1, PID: 4198 jav转载 2022-05-22 21:57:35 · 310 阅读 · 0 评论 -
android framework项目开发案例-动态隐藏Launcher上图标
hi,粉丝朋友们大家好!今天开始我们来开发一个android手机上如何动态隐藏桌面图标案例!项目背景:手机上桌面图标有时候不想被其他人发现,我们安装了某些应用,比如陌陌,xxx交友,和平精英等等具体实现方案讨论:方案1:在桌面launcher上面进行对应图标隐藏既可以缺点:只能隐藏桌面图标,但是一些应用中心等也一样有入口,所以不彻底方案2:在桌面launcher隐藏,而且framework层面实现拦截跳转,如framework在startActivity地方进行拦截缺点:这里可能会让第三方应用转载 2022-05-22 21:57:15 · 848 阅读 · 0 评论 -
adb编译那些事
adb这个命令虽然我们用的很多,但是对它的是怎么编译出来的却不是非常清楚:一般我们使用都是windows上使用adb,这个其实是sdk下面的adb.exe,那么adb.exe到底是怎么编译来的:源码在system/core/adb下面但是依赖两个USB相关的dll源码在development/host/windows/usb下面下面讲一下怎么编译adb.exesudo apt-get install mingw32会有报错:Unable to locate package mingw32转载 2022-05-22 21:56:28 · 439 阅读 · 0 评论 -
Windows上运行自己编译的安卓系统img(补充自己制作雷电)-千里马android framework
hi,粉丝朋友们大家好,自从学员们学习了我之前课程里面讲解的windows上怎么运行编译的android系统一课,相信大家都已经可以实现了windows上运行自己修改的android系统。如果还没看的学员可以先看这一篇blog:Android Framework高级开发-修改的系统Window上模拟器运行但是同学们陆续也提出了一些问题,我在这里进行一些补充:1、首先问题那就是,第一次是顺利运行起来了自己修改的android系统,但是后面 如果经常修改,该怎么来很好的快速的更新呢?需要回答这个问题,转载 2022-05-22 21:56:01 · 688 阅读 · 0 评论 -
android framework之priv-app,系统特权app权限那些坑
csdn在线学习课程,课程咨询答疑和新课信息:QQ交流群:422901085进行课程讨论android跨进程通信实战视频课程(加群获取优惠)hi,大家好!在做framework开发过程中相信很多朋友会有一些关于系统应用的一些权限问题,在学习过千里马相关系统内置应用相关课程后,大家也知道了系统内置应用一般放在system/app路径下,这样就不会被用户随意卸载了,但是app放在这下面具体运行起来有哪些权限和没有哪些权限就不是很清楚了。这里刚好做一个比较全面总结:android中app主要有3个路径可转载 2022-05-22 21:55:40 · 1779 阅读 · 0 评论 -
adb shell调试contentprovider相关命令-千里马android framework
hi,经常在做android系统应用开发,或者framework时候其实都少不了和contentprovider打交道,这里contentprovider其实也算android四大组件中非常重要的一个组件。经常如果涉及到数据库操作和跨进程一些通信,如果我们需要测试contentprovider写的是否正确,可以 被客户端调用正常主要有2种方法 :1、自己写一个demo来 专门访问contentprovider方式,这种方式当然是ok的,但是每次需要访问contentprovider接口等 都需要对代码进行转载 2022-05-19 11:53:02 · 993 阅读 · 0 评论 -
android8.1编译出现py相关语法错误: SyntaxError: invalid syntax
在我ubuntu编译android8.1时候一切都是ok,不知道什么时候可能编译高版本的android时候强制要求切换了python的版本。报出如下错误: except getopt.GetoptError, err: SyntaxError: invalid syntax 这个说实话看到第一眼确实比较蒙,因为明明自己android8.1代码原来都是可以顺利编译过的啊,为啥现在报这种py的语法错误啊?其实这个问题我回想起来,本质可能还是python的版本问题,因为在android s/t的编译转载 2022-05-19 11:52:35 · 602 阅读 · 0 评论