- 博客(47)
- 资源 (8)
- 收藏
- 关注
原创 MacOS远程桌面报错0x207解决方法
2. 将远程桌面连接导出为RDP文件。用文本编辑器打开,找到“use redirection server name:i:0”这一行。1. 首先确保Ubuntu端的设置没有问题。用其他设备(windows等)可以正常连接。且用户名密码均无误。3. 回到Windows App,点击菜单栏>连接>从RDP文件导入,导入修改好的配置(或者拖入)。用Windows App远程桌面至Ubuntu 24.04,报错0x207的解决办法。4. 再次尝试连接,解决。
2025-12-25 19:28:48
121
原创 Android Studio 多语言助手插件:让多语言管理变得简单高效
Android Studio 多语言助手插件通过自动化的方式,将繁琐的多语言管理工作变得简单高效。它不仅解决了车机开发中多语言管理的痛点,还提升了工作效率、降低了出错率,让开发团队可以更专注于核心功能的开发。如果你也在为多语言管理而烦恼,不妨试试这个插件。它可能会成为你开发工具箱中的得力助手。致谢:本项目基于前辈linxu-link。
2025-11-07 18:47:03
922
原创 程序员为什么要使用 AI 编程:从焦虑到效率的转变
AI 编程不是要替代程序员,而是要成为程序员的得力助手。解决信息过载:快速找到解决方案消除重复劳动:专注创造性工作克服技术恐惧:敢于尝试新技术提升代码质量:生成更健壮的代码加速学习成长:通过实践快速掌握新知识作为一名程序员,我们应该拥抱这个变化,让 AI 成为我们工具箱中最强大的工具。因为最终,决定程序质量的不是工具本身,而是使用工具的程序员的思考能力和业务理解。不要让焦虑阻碍进步,让 AI 帮你解决那些困扰已久的实际问题,专注于创造真正有价值的东西。
2025-11-07 18:45:42
709
原创 android取消每次u盘插入创建无用(媒体)文件夹
摘要:针对Android10车机系统插入U盘时自动创建过多媒体文件夹的问题,开发人员通过修改MediaProvider.java文件中的相关代码进行优化。该问题导致用户需要频繁手动删除多余文件夹,影响使用体验。修改方案已在代码注释中明确标注,旨在解决这一用户痛点。
2025-10-17 13:25:05
672
原创 android10 存储空间满造成无法开机(错误No space left on device)
车机系统因存储空间耗尽导致无法开机的问题分析及解决方案。通过日志分析发现,用户下载大量音乐和地图缓存导致存储空间耗尽,系统重启后无法写入开机文件。采用模拟写入命令复现问题,确认存储空间被占满。解决方案是在sdcard.cpp代码中加入reserved_mb=500参数,预留500M空间。验证显示空间保留成功,系统重启后能正常写入文件。该方案有效解决了存储空间耗尽导致的系统启动故障。
2025-10-17 13:23:56
434
原创 Android12控制MediaProiection虚拟屏镜像屏幕id
这篇文章探讨了Android车机开发中实现多屏同显功能的技术方案。作者发现Android 12系统默认只支持镜像主屏幕(id=0),而客车应用场景需要镜像第二屏幕(id=1)。通过分析源码,作者提出了一种不改变原有API的解决方案:利用flags参数的移位方法传递镜像屏幕ID参数,在框架层调用setDisplayIdToMirror方法。对于Android 10系统,则需要直接修改默认屏幕ID。该方案成功实现了将屏幕id=1的内容镜像到主屏幕的功能,为车机多屏显示提供了实用技术参考。
2025-09-22 14:46:06
546
原创 android12解决非CarProperty接口深色模式设置后开机无法保持
以上方法总结起来其实不是很推荐,因为他破坏了AUTOMOTIVE的相关逻辑,属于强行修改。类似我这种公司规定的不按照标准实现的可以考虑下。
2025-09-22 14:45:44
493
4
原创 ubuntu编译ijkplayer版本k0.8.8(ffmpeg4.0)
大多数网上文章建议多是把大B改成小b,很麻烦。后来在issus找到了回复,验证可行。3.error:x0000000 这个问题折腾了好久。下载后解压到路径/xxx/xxx。2、编译类型(完整版)
2025-08-21 19:50:57
459
原创 Android为ijkplayer设置音频发音类型usage
遗憾的是官方的源码并没有以上方法(如果你使用的不是ffmpeg,而是explayer是有的)。可以看到系统源码setAudioStreamType方法并没有进行jni实现,我们修改源码实现后,传入自定义类型数字就行,这个数字需要和音频同事确定,不可以随便填写,最终会绑定到音频bus上。android14以上可以通过镜像播放的方式(MirrorDevice)实现,但是Android13以下由于代码比较老,没有这部分实现,常见的方法是通过设置usage方式,指定硬件bus来解决。
2025-08-21 19:35:11
1455
原创 六.Android studio一键编译系统代码apk并push到系统
摘要:本文介绍了一种优化AOSP系统应用开发流程的方法。针对系统应用权限问题导致无法直接运行APK的情况,作者提出通过脚本+AS配置实现一键操作。具体方案包括:1)创建批处理脚本自动执行adb push到系统目录;2)配置变量定义应用包名、路径等参数;3)集成adb命令完成root授权、文件推送和系统重启。该方法避免了手动敲命令的耗时操作,特别适合刚接触系统应用开发的开发者。脚本原理是替换Android Studio默认的install命令,改为推送APK到系统目录后重启设备。
2025-07-10 19:11:35
352
原创 五.其他错误解决
摘要:导入asop源码到Android Studio常见问题解决方法:1)string.xml资源文件重复问题,需根据设备类型注释多余条目;2)资源文件大小写问题,建议手动修改为小写开头;3)字符引用错误时需查找对应key值替换;4)主题资源参数错误可注释处理。
2025-07-10 19:11:23
80
原创 四.生成系统签名
本文介绍了为Android应用生成系统签名的方法,以获取调用系统隐藏API的权限。主要内容包括:1) 解释系统签名必要性,指出AOSP编译时自动使用系统签名;2) 详细说明利用platform.pk8和platform.x509.pem文件生成keystore签名的步骤,包括工具下载、命令执行等;3) 提供Android Studio中配置系统签名的代码示例;4) 分享相关资源下载链接。操作关键是将系统签名文件转换为Android Studio可用的keystore格式,并正确配置到项目中。
2025-06-30 20:16:56
82
原创 三.解决framwork的相关错误
本文介绍了解决Android Studio无法使用系统隐藏API方法:1)通过将源码编译的framework.jar导入项目并调整优先级顺序,具体步骤包括复制jar包、修改build.gradle配置,以及通过脚本自动调整iml文件顺序;2)解决编译器打包时找不到引用的问题,通过在根build.gradle中添加脚本将framework.jar加入编译环境。两种方法配合使用,可确保开发时能正确引用系统隐藏API,同时解决编译打包问题。
2025-06-30 20:16:04
230
原创 openGrok大型源码(AOSP/openHarmonyOS等)开发提升检索效率必备神器
OpenGrok是一个基于网页使用的开源的代码搜索与导航工具,由 Oracle 和开源社区共同维护,主要用于帮助开发者快速理解和导航大型代码库。它的名字来源于“grok”(意为“深刻理解”),旨在通过高效索引和搜索功能,让开发者更轻松地探索代码结构、依赖关系和实现细节。核心功能代码索引与搜索自动分析代码库(支持 C、Java、Python 等多种语言),生成索引。支持通过关键词、正则表达式或代码符号(如函数、类名)快速搜索代码。交叉引用(Cross-Reference)
2025-06-17 14:44:18
1021
原创 二.TvSettings从Android.bp解析成build.gradle
我们本次主要目的是解读源码中的android.bp文件,改写成android studio可以识别的build.gradle文件。Android.bp是Android的Soong构建系统使用的配置文件,主要在AOSP(Android开放源代码项目)中使用。而build.gradle是Android Studio默认的构建配置文件,基于Gradle构建系统。这两个文件看起来都是用来配置构建的,但它们的使用场景不同。
2025-06-15 11:29:56
313
4
原创 一.android Studio开发系统应用——导入TvSettings源码
本文介绍了如何在Android Studio(AS)中编辑系统应用源码并实现一键在真机中运行的方法,以提升开发效率。首先,新建项目并配置Gradle版本库,确保依赖库的完整性和兼容性。接着,将TvSettings源码导入项目,并修改AS的Gradle配置,使其指向源码路径,避免污染源码文件。通过调整app/build.gradle文件中的sourceSets,确保AS能正确识别源码路径。最后,解析android.bp文件并配置到build.gradle中,使AS能够识别所有源码。该方法适合需要频繁修改的系统
2025-05-15 19:04:38
328
原创 工具篇:Aosp代码搜索必备神器OpenGrok
OpenGrok是一个基于网页使用的开源的代码搜索与导航工具,由 Oracle 和开源社区共同维护,主要用于帮助开发者快速理解和导航大型代码库。它的名字来源于“grok”(意为“深刻理解”),旨在通过高效索引和搜索功能,让开发者更轻松地探索代码结构、依赖关系和实现细节。核心功能代码索引与搜索自动分析代码库(支持 C、Java、Python 等多种语言),生成索引。支持通过关键词、正则表达式或代码符号(如函数、类名)快速搜索代码。交叉引用(Cross-Reference)
2025-05-05 14:50:20
643
原创 使用vscode远程连接到linux改代码
在大型源码如AOSP生产开发中,公司都会为开发者提供一个linux服务器,用于快速编译代码。服务器的性能远高于办公电脑,能把个人pc几个小时的编译压缩到几十甚至十几分钟,而且解决了本地办公电脑系统环境兼容问题。但是同时就带来了一个问题,怎样修复和阅读服务器中的源码?以下工具就是为解决这类问题的。
2025-05-05 13:45:29
558
原创 Android Studio for Platform(ASFP)真机主板调试
并且每次换设备还要重新配置,我多数设备都是用wifi的adb方式连接。连接显示器配合usb鼠标或者遥控器操作(因为开发板默认开启了adb,我这里是使用有线adb工具scrcpy进行的截图)如果出现了找不到adb命令,说明环境变量还没有配置,可以通过命令进入sdk的adb工具文件夹执行即可。首先将香橙派开发板介入网络,我这里有无线网卡,如果你没有可以选择第二种有线网络插入主板。其实我是随便添加了个空的app启动,这样就可以看到设备连接状态了。有人会问,为什么我的状态栏上能显示连接到的设备。
2025-04-29 19:40:27
625
原创 Android Studio for Platform(ASFP)安装及使用调试
可以看到“finsih”之后,控制台开始编译,如果源码没有编译过,这里就很麻烦,我已经编译成功过,这里导入依然花费了接近20分钟。它比AS多了一个asfp菜单,这里的“sync project”可以触发构建。待右下角索引建立完成,这时候你发现,源码也有了代码提示和引用跳转功能了,可以像平时在AS中一样写代码了。注意一定是x86的linux电脑,否则打开连接是无法下载这个样子的。打开配置文件,可以看到刚刚的配置都在这里,后续可以手动修改。这里选择“new”,选择源码所在文件夹,点击"next"
2025-04-26 11:55:09
660
原创 Android12源码编译及刷机
打开 RKDevTool 烧录工具后,因为电脑此时还没有通过 Type-C 线连接上开发 板,所以左下角会提示“没有发现设备”当然因为默认开发板adb是打开的,设备重启后,可以不连接显示器,直接使用scrcpy软件投屏。可以更方便的用电脑控制开发板。RK芯片的开发板可玩性很高,这里以电视版本android系统为例子,学习的同时还可以当成一个电视盒子。b. 等待一段时间后,会弹出窗口提示“安装驱动成功”,然后点击“确定” 按钮即可。点击“升级固件”菜单,点击固件,选择update.img镜像文件所在位置。
2025-04-26 11:31:15
550
原创 Android系统应用开发入门(工具IDE)
IOS开发工作几乎已经失业,android应用开发由于市场的规范化和培训机构的大规模人员涌入,也变得非常艰难。我工作中主要使用的是车机系统(Android Auto),这部分代码的下载和编译由于实际每个公司使用的芯片厂家决定,所以环境会有所差异,就不做讲解了。如果你是学习,那么我建议你可以购买一个RK的开发版,我这里演示使用的是Orange Pi 5 Plus,他会赠送详细的开发文档和源码环境搭建教程,如果你是做民用产品的,很可能实际也会用这个芯片加系统在生产环境。我的开发环境是如何搭配使用的。
2025-04-24 14:22:49
398
原创 Android12 替换车机系统默认壁纸
aosp车机定制开发都需要替换掉默认系统的壁纸。车机版的壁纸官方默认在car模块中使用overly的方式替换掉了手机版的壁纸。所以我们直接修改framwork中图片编译时无效的。需要在car模块代码中进行修改才能生效。另外如果你是手机开发,推荐也建议你在device中使用overly方式替换背景图片,减少对系统资源的侵入。版本管理也更加方便。
2024-11-29 16:44:25
1215
原创 Android发送广播“non-protected broadcast”错误
android广播不影响发送使用,确一直有红色error错误提示。到底怎么回事?
2024-11-25 14:37:34
2317
原创 Android高低温导致ANR日志分析过程(高温导致音谱功能卡住)
公司产品在做高低温试验的时候发现只要高温超过85度,打开音乐播放器的音乐图谱就会出现ANR崩溃。因为这个日志是cpp打印的,他的状态和java是不一样的。这个可以配合导出的logcat时间点配合分析。是关建行,耗时操作造成了ANR.这是我发生anr的app和时间。为什么有状态为native的?
2024-10-09 19:59:16
586
原创 Android车机IVI动态倒车辅助线代码绘制
有的同学会使用图片序列帧方式运行,但是细节和图片成正比。代码基于开源代码ImGuizmo:https://github.com/CedricGuillemet/ImGuizmo(c++我也是菜鸟,就不在各位高手面前献丑了,大家可以研究下。上面的图片是在windows电脑上运行的,并没有编译到Android,因为代码本身是c++的依赖很少,所以是可以编译到Android的,网上有很多教程。思路如上,如果需要c++源码demo源码(抱歉,需要请我喝杯咖啡后,留下邮箱,下班后回复。
2024-10-09 19:51:09
1380
4
原创 AOSP单模块编译比mm更快的ninja快速编译
编译指令常用的make build....和mm之外,还有一种采用ninja编译的方式。这种编译方式最快,适合开发系统模块fw这类过程中使用。执行./quick_build.sh <模块名>,例如 ./quick_build.sh frameworks;将文件放在源码Android根目录,执行chmod 777 quick_build.sh授权文件。将编译后的模块推送到了system中(注意这类修改成你要推送模块的路径)。执行source lunch设置编译环境;
2024-08-02 19:05:41
1054
2
原创 android12编译三方提供的bin文件,通过selinux配置并实现rc开机启动
android12编译三方提供的bin文件到system/bin目录,配置te通过selinux,并实现rc开机启动
2024-08-02 18:00:19
874
原创 android12自动授权p2p连接(取消手动对话框)
android10的修改位置路径是:/android/frameworks/opt/net/wifi/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java。android12的修改路径:/android12/packages/modules/Wifi/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java。模拟用户点击了确认按钮。
2024-07-06 16:01:36
577
原创 Android 通过重载service的dump函数实现adb打印
通过继承service实现dump函数,可以通过下面命令对service进行自定义命令和参数交互,来执行自己需要的代码函数。
2024-07-05 19:57:28
604
原创 android12替换默认字体为阿里普惠
4.andriod.bp加入编译到系统镜像,字体文件会输出到镜像system/fonts 目录下。1.导入字体到路径frameworks\base\data\fonts。5.查看字体是否已经生效。(普惠字体这个“司”字非常好区分)2、在该目录下面的fonts.mk文件中添加字体。3.替换zh-Hans中文字体。
2024-05-30 14:13:04
977
2
原创 android12设置中文默认键盘为谷歌Gboard键盘
摘要 本文介绍了在Android 10系统中内置第三方输入法并设置为默认输入法的实现方法。主要内容包括:1) 通过Android.mk文件将输入法APK编译到系统镜像中;2) 修改系统配置文件defaults.xml和DatabaseHelper.java设置默认输入法;3) 解决输入法随语言切换的问题;4) 调整英文键盘高度和字体大小以适应不同屏幕分辨率;5) 指出了在英文系统环境下仍会默认启动原生英文键盘的问题及待解决方向。
2024-05-28 19:52:26
1401
原创 android12指定应用白名单默认授权
1.路径frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java尾部加入如下代码。5.这是重新刷机,应用就可以面授权直接进入了。进入设置权限页面也可以看到。3.新建sys_app_grant_permission_list.txt文件,写入白名单授权包名。4.在mk中构建加入sys_app_grant_permission_list.conf拷贝。
2024-04-24 17:15:01
2132
11
原创 android异常日志和屏幕的录制(screenrecord+logcat)
android系统应用开发,后期好多bug都不是必现而是偶发,这种需要测试同事反复尝试出现后。门需要在bug产生的时候进行操作过程的录制、log的导出、bug发生时间点这三个元素,将复现的bug整理后提交给研发的同学。这种情况多数都可以用logcat+screenrecord编写个简单的脚本搞定。由于screenrecord录制自带系统信息和毫秒时间点。只需要将录制到mp4和log给出就可。
2024-04-12 10:05:14
594
原创 binder服务端监听客户端销毁,利用linkToDeath自动移除客户端回调监听
但是如果服务端有客户端添加的回调,客户端销毁了。服务端在不知道情况下回调了客户端添加的回调。服务端就会抛出RemoteException异常或者空指针异常,造成服务端崩溃。binder场景是客户端绑定服务端,可以通过linkToDeath方法监听服务端的消亡,防止远程调用抛出RemoteException的异常。以下代码就是放在服务端,管理客户端添加过来的回调类。当客户端异常销毁,服务端自动维护回调集合,自动移除不存在的客户端回调。
2023-12-13 10:30:59
1046
1
原创 android10修改softap热点设置分配的dns
车机系统开发,对接三方投屏app。系统不能给连接到车机热点苹果手机分配dns,以达到,苹果手机通过自身流量方式连接到热点同时还能访问互联网,节省车机自带流量。四、解决方案二:修改DhcpServer.java代码dhcp中dns分配部分,然后通过动态设置persist.tyw.clean.dns取值,决定是否给某些时段新连接的设备是否分配dns。修改源码方式适合车机有4g模块,手机是否可以使用车机流量上网可以动态判断。配置文件方式适合车机没有4g模块,这样也不会有手机连接车机使用车机流量的场景。
2023-11-27 20:05:04
1284
原创 android10(aosp开发)设备连接有线网络后自动断开P2P无线连接
车机系统开发,android会通过有线网络接入tbox获取上网流量,但是三方app投屏厂商未实现无感连接到车机,实现android手机投屏。会默认使用p2p接入无线网络。此时同时接入有线tbox和无线p2p安卓手机投屏app,一切正常;1.先连接上p2p投屏,后接入有线tbox。2.先接入有线tbox,后连接屏p2p投屏。后续可以通过rc文件让系统默认添加路由规则。执行后执行 ip rule查看路由规则如下。二、加入路由规则,让p2p网络可以接入系统。一、降低有线网络打分等级,低于无线网络。
2023-09-21 19:01:03
473
Android-OPhone开发完全讲义源代码(1)
2012-10-15
svn1.6安装包和教程
2013-06-29
适合windows的Inconsolata字体
2013-05-17
Android/OPhone 开发完全讲义源代码(2)
2012-10-15
eclipse4.2_juno中文包官方下载
2012-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅