自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (8)
  • 收藏
  • 关注

原创 ubuntu编译ijkplayer版本k0.8.8(ffmpeg4.0)

大多数网上文章建议多是把大B改成小b,很麻烦。后来在issus找到了回复,验证可行。3.error:x0000000 这个问题折腾了好久。下载后解压到路径/xxx/xxx。2、编译类型(完整版)

2025-08-21 19:50:57 255

原创 Android为ijkplayer设置音频发音类型usage

遗憾的是官方的源码并没有以上方法(如果你使用的不是ffmpeg,而是explayer是有的)。可以看到系统源码setAudioStreamType方法并没有进行jni实现,我们修改源码实现后,传入自定义类型数字就行,这个数字需要和音频同事确定,不可以随便填写,最终会绑定到音频bus上。android14以上可以通过镜像播放的方式(MirrorDevice)实现,但是Android13以下由于代码比较老,没有这部分实现,常见的方法是通过设置usage方式,指定硬件bus来解决。

2025-08-21 19:35:11 700

原创 六.Android studio一键编译系统代码apk并push到系统

摘要:本文介绍了一种优化AOSP系统应用开发流程的方法。针对系统应用权限问题导致无法直接运行APK的情况,作者提出通过脚本+AS配置实现一键操作。具体方案包括:1)创建批处理脚本自动执行adb push到系统目录;2)配置变量定义应用包名、路径等参数;3)集成adb命令完成root授权、文件推送和系统重启。该方法避免了手动敲命令的耗时操作,特别适合刚接触系统应用开发的开发者。脚本原理是替换Android Studio默认的install命令,改为推送APK到系统目录后重启设备。

2025-07-10 19:11:35 207

原创 五.其他错误解决

摘要:导入asop源码到Android Studio常见问题解决方法:1)string.xml资源文件重复问题,需根据设备类型注释多余条目;2)资源文件大小写问题,建议手动修改为小写开头;3)字符引用错误时需查找对应key值替换;4)主题资源参数错误可注释处理。

2025-07-10 19:11:23 40

原创 四.生成系统签名

本文介绍了为Android应用生成系统签名的方法,以获取调用系统隐藏API的权限。主要内容包括:1) 解释系统签名必要性,指出AOSP编译时自动使用系统签名;2) 详细说明利用platform.pk8和platform.x509.pem文件生成keystore签名的步骤,包括工具下载、命令执行等;3) 提供Android Studio中配置系统签名的代码示例;4) 分享相关资源下载链接。操作关键是将系统签名文件转换为Android Studio可用的keystore格式,并正确配置到项目中。

2025-06-30 20:16:56 43

原创 三.解决framwork的相关错误

本文介绍了解决Android Studio无法使用系统隐藏API方法:1)通过将源码编译的framework.jar导入项目并调整优先级顺序,具体步骤包括复制jar包、修改build.gradle配置,以及通过脚本自动调整iml文件顺序;2)解决编译器打包时找不到引用的问题,通过在根build.gradle中添加脚本将framework.jar加入编译环境。两种方法配合使用,可确保开发时能正确引用系统隐藏API,同时解决编译打包问题。

2025-06-30 20:16:04 178

原创 openGrok大型源码(AOSP/openHarmonyOS等)开发提升检索效率必备神器

OpenGrok是一个基于网页使用的开源的代码搜索与导航工具,由 Oracle 和开源社区共同维护,主要用于帮助开发者快速理解和导航大型代码库。它的名字来源于“grok”(意为“深刻理解”),旨在通过高效索引和搜索功能,让开发者更轻松地探索代码结构、依赖关系和实现细节。核心功能代码索引与搜索自动分析代码库(支持 C、Java、Python 等多种语言),生成索引。支持通过关键词、正则表达式或代码符号(如函数、类名)快速搜索代码。交叉引用(Cross-Reference)

2025-06-17 14:44:18 775

原创 二.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 121 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 166

原创 工具篇:Aosp代码搜索必备神器OpenGrok

OpenGrok是一个基于网页使用的开源的代码搜索与导航工具,由 Oracle 和开源社区共同维护,主要用于帮助开发者快速理解和导航大型代码库。它的名字来源于“grok”(意为“深刻理解”),旨在通过高效索引和搜索功能,让开发者更轻松地探索代码结构、依赖关系和实现细节。核心功能代码索引与搜索自动分析代码库(支持 C、Java、Python 等多种语言),生成索引。支持通过关键词、正则表达式或代码符号(如函数、类名)快速搜索代码。交叉引用(Cross-Reference)

2025-05-05 14:50:20 394

原创 使用vscode远程连接到linux改代码

在大型源码如AOSP生产开发中,公司都会为开发者提供一个linux服务器,用于快速编译代码。服务器的性能远高于办公电脑,能把个人pc几个小时的编译压缩到几十甚至十几分钟,而且解决了本地办公电脑系统环境兼容问题。但是同时就带来了一个问题,怎样修复和阅读服务器中的源码?以下工具就是为解决这类问题的。

2025-05-05 13:45:29 320

原创 Android Studio for Platform(ASFP)真机主板调试

并且每次换设备还要重新配置,我多数设备都是用wifi的adb方式连接。连接显示器配合usb鼠标或者遥控器操作(因为开发板默认开启了adb,我这里是使用有线adb工具scrcpy进行的截图)如果出现了找不到adb命令,说明环境变量还没有配置,可以通过命令进入sdk的adb工具文件夹执行即可。首先将香橙派开发板介入网络,我这里有无线网卡,如果你没有可以选择第二种有线网络插入主板。其实我是随便添加了个空的app启动,这样就可以看到设备连接状态了。有人会问,为什么我的状态栏上能显示连接到的设备。

2025-04-29 19:40:27 458

原创 Android Studio for Platform(ASFP)安装及使用调试

可以看到“finsih”之后,控制台开始编译,如果源码没有编译过,这里就很麻烦,我已经编译成功过,这里导入依然花费了接近20分钟。它比AS多了一个asfp菜单,这里的“sync project”可以触发构建。待右下角索引建立完成,这时候你发现,源码也有了代码提示和引用跳转功能了,可以像平时在AS中一样写代码了。注意一定是x86的linux电脑,否则打开连接是无法下载这个样子的。打开配置文件,可以看到刚刚的配置都在这里,后续可以手动修改。这里选择“new”,选择源码所在文件夹,点击"next"

2025-04-26 11:55:09 352

原创 Android12源码编译及刷机

打开 RKDevTool 烧录工具后,因为电脑此时还没有通过 Type-C 线连接上开发 板,所以左下角会提示“没有发现设备”当然因为默认开发板adb是打开的,设备重启后,可以不连接显示器,直接使用scrcpy软件投屏。可以更方便的用电脑控制开发板。RK芯片的开发板可玩性很高,这里以电视版本android系统为例子,学习的同时还可以当成一个电视盒子。b. 等待一段时间后,会弹出窗口提示“安装驱动成功”,然后点击“确定” 按钮即可。点击“升级固件”菜单,点击固件,选择update.img镜像文件所在位置。

2025-04-26 11:31:15 346

原创 Android系统应用开发入门(工具IDE)

IOS开发工作几乎已经失业,android应用开发由于市场的规范化和培训机构的大规模人员涌入,也变得非常艰难。我工作中主要使用的是车机系统(Android Auto),这部分代码的下载和编译由于实际每个公司使用的芯片厂家决定,所以环境会有所差异,就不做讲解了。如果你是学习,那么我建议你可以购买一个RK的开发版,我这里演示使用的是Orange Pi 5 Plus,他会赠送详细的开发文档和源码环境搭建教程,如果你是做民用产品的,很可能实际也会用这个芯片加系统在生产环境。我的开发环境是如何搭配使用的。

2025-04-24 14:22:49 300

原创 Android12 替换车机系统默认壁纸

aosp车机定制开发都需要替换掉默认系统的壁纸。车机版的壁纸官方默认在car模块中使用overly的方式替换掉了手机版的壁纸。所以我们直接修改framwork中图片编译时无效的。需要在car模块代码中进行修改才能生效。另外如果你是手机开发,推荐也建议你在device中使用overly方式替换背景图片,减少对系统资源的侵入。版本管理也更加方便。

2024-11-29 16:44:25 884

原创 Android发送广播“non-protected broadcast”错误

android广播不影响发送使用,确一直有红色error错误提示。到底怎么回事?

2024-11-25 14:37:34 1711

原创 Android高低温导致ANR日志分析过程(高温导致音谱功能卡住)

公司产品在做高低温试验的时候发现只要高温超过85度,打开音乐播放器的音乐图谱就会出现ANR崩溃。因为这个日志是cpp打印的,他的状态和java是不一样的。这个可以配合导出的logcat时间点配合分析。是关建行,耗时操作造成了ANR.这是我发生anr的app和时间。为什么有状态为native的?

2024-10-09 19:59:16 552

原创 Android车机IVI动态倒车辅助线代码绘制

有的同学会使用图片序列帧方式运行,但是细节和图片成正比。代码基于开源代码ImGuizmo:https://github.com/CedricGuillemet/ImGuizmo(c++我也是菜鸟,就不在各位高手面前献丑了,大家可以研究下。上面的图片是在windows电脑上运行的,并没有编译到Android,因为代码本身是c++的依赖很少,所以是可以编译到Android的,网上有很多教程。思路如上,如果需要c++源码demo源码(抱歉,需要请我喝杯咖啡后,留下邮箱,下班后回复。

2024-10-09 19:51:09 1130 2

原创 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 860 2

原创 android12编译三方提供的bin文件,通过selinux配置并实现rc开机启动

android12编译三方提供的bin文件到system/bin目录,配置te通过selinux,并实现rc开机启动

2024-08-02 18:00:19 792

原创 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 506

原创 Android 通过重载service的dump函数实现adb打印

通过继承service实现dump函数,可以通过下面命令对service进行自定义命令和参数交互,来执行自己需要的代码函数。

2024-07-05 19:57:28 506

原创 Android12 禁止adb安装应用(可开关)

通过开关的方式设置是否允许adb安装

2024-06-28 16:56:25 1910

原创 android12替换默认字体为阿里普惠

4.andriod.bp加入编译到系统镜像,字体文件会输出到镜像system/fonts 目录下。1.导入字体到路径frameworks\base\data\fonts。5.查看字体是否已经生效。(普惠字体这个“司”字非常好区分)2、在该目录下面的fonts.mk文件中添加字体。3.替换zh-Hans中文字体。

2024-05-30 14:13:04 798 2

原创 android12设置中文默认键盘为谷歌Gboard键盘

摘要 本文介绍了在Android 10系统中内置第三方输入法并设置为默认输入法的实现方法。主要内容包括:1) 通过Android.mk文件将输入法APK编译到系统镜像中;2) 修改系统配置文件defaults.xml和DatabaseHelper.java设置默认输入法;3) 解决输入法随语言切换的问题;4) 调整英文键盘高度和字体大小以适应不同屏幕分辨率;5) 指出了在英文系统环境下仍会默认启动原生英文键盘的问题及待解决方向。

2024-05-28 19:52:26 1009

原创 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 1918 11

原创 android异常日志和屏幕的录制(screenrecord+logcat)

android系统应用开发,后期好多bug都不是必现而是偶发,这种需要测试同事反复尝试出现后。门需要在bug产生的时候进行操作过程的录制、log的导出、bug发生时间点这三个元素,将复现的bug整理后提交给研发的同学。这种情况多数都可以用logcat+screenrecord编写个简单的脚本搞定。由于screenrecord录制自带系统信息和毫秒时间点。只需要将录制到mp4和log给出就可。

2024-04-12 10:05:14 476

原创 android 文件完整性md5检验

通过文件流方式校验文件的md5和下载前服务器计算的是否一致,用于大文件下载后确认是否文件存在损坏。

2023-12-26 17:18:02 1159 1

原创 华为云OBS对象存储取消下载

android取消正在华为云obs下载文件的方法

2023-12-16 13:31:47 713 1

原创 binder服务端监听客户端销毁,利用linkToDeath自动移除客户端回调监听

但是如果服务端有客户端添加的回调,客户端销毁了。服务端在不知道情况下回调了客户端添加的回调。服务端就会抛出RemoteException异常或者空指针异常,造成服务端崩溃。binder场景是客户端绑定服务端,可以通过linkToDeath方法监听服务端的消亡,防止远程调用抛出RemoteException的异常。以下代码就是放在服务端,管理客户端添加过来的回调类。当客户端异常销毁,服务端自动维护回调集合,自动移除不存在的客户端回调。

2023-12-13 10:30:59 925 1

原创 android10修改softap热点设置分配的dns

车机系统开发,对接三方投屏app。系统不能给连接到车机热点苹果手机分配dns,以达到,苹果手机通过自身流量方式连接到热点同时还能访问互联网,节省车机自带流量。四、解决方案二:修改DhcpServer.java代码dhcp中dns分配部分,然后通过动态设置persist.tyw.clean.dns取值,决定是否给某些时段新连接的设备是否分配dns。修改源码方式适合车机有4g模块,手机是否可以使用车机流量上网可以动态判断。配置文件方式适合车机没有4g模块,这样也不会有手机连接车机使用车机流量的场景。

2023-11-27 20:05:04 1080

原创 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 409

原创 关闭谷歌键盘确认提示框

开始以为这个输入是因为没有授权,所以在授权代码部分和白名单部分一顿猛操作,后来再设置权限中发现,即使都授权了第一次开机也会弹出这个提示框。才发现这个不是授权用的,就是谷歌键盘默认一个弹出框!1.反编译全局搜索china_preload_notice_shown,将他的默认值改成true(smil源码中是v8改成v6)奈何没有找到其他可以替代的授权的输入法。以上两种方式感觉都不是终极解决方式,如果您有好的方式去除这个提示框,欢迎留言探讨!原来是china_preload_notice_shown有个标识。

2023-09-03 14:46:22 485

原创 修改谷歌拼音键盘高度

可以看到他具体去取的值是ro.comgoogle.ime.height_ratio 由于是ro类型的属性,无法通过adb命令动态验证,于是需要在编译时候加入属性验证。但是最后版本的输入法4.5.2的源码已经不再开源,无法通过网上提到修改键盘高度比例源码来动态增高或降低键盘默认显示高度。很遗憾我的dpi设置的并没有问题,所有还得继续寻找原因,无奈反编译查看谷歌键盘源码。车机不是常规比例屏幕,造成谷歌拼音如输入高度特别低,手指点击经常误操作。通过源码可以看到谷歌键盘会优先根据proprty设定高度比例,如图。

2023-09-03 14:30:35 611

原创 android10安装谷歌拼音输入法4.5.2异常: java.lang.SecurityException: Failed to find provider user_dictionary

UserDictionaryProvider 库源码路径:​/android/packages/providers/UserDictionaryProvider/​。编译前可以先从文件管理器确认下是否是本问题造成。

2023-08-11 16:43:41 381 1

原创 android10 根据包名默认通过“未知应用”安装权限

aosp29系统开发,某些内置三方应用要求默认授予安装权限用于升级,但是Android10出于安全考虑,默认安装升级包需要用户授权。出现如下提示:设置通过后还会提示确认框。

2023-08-11 16:21:26 1172 1

原创 android10 系统api实现app开机启动管理

车机系统开发,基于android10.调用系统api实现启动和关闭app的开机自启功能。

2022-06-15 10:17:29 1419

原创 android 10.0利用反射调用系统截屏

1.需要系统签名2.添加<uses-permission android:name="android.permission.READ_FRAME_BUFFER" />权限//屏幕宽度1920,高度720 publicvoid startScreenShot() { try { @SuppressLint("PrivateApi") Class<?> mClassType = Class.forName("android.view.S

2022-05-27 14:10:53 922

原创 群晖note station新版本一直显示“正在加载”解决方法

最新群晖NoteStation更新一直显示“正在加载”。需要先备份好便签然后彻底删除掉NoteStation2.6.0版本官方就能下载https://archive.synology.com/download/Package/NoteStation/2.5.5-0870下载自己硬件对应版本,一般多是x86版本。是在贴吧@剑轻吟_的发帖中找到的,在此记录感谢!下载上传2.5.5版本到群晖,点击手动安装2.5.5的旧版本。...

2021-06-29 08:48:33 4636

android-ijkplayer-so文件

修改源码,加入了音频类型usage设置方法

2025-08-21

openjdk11.0.20-linux-x64

openjdk11.0.20-linux-x64

2023-12-16

安卓手机投屏到电脑,可以电脑操作手机scrcpy

安卓手机投屏到电脑,可以电脑操作手机scrcpy

2023-12-16

软理由镜像包openwrt-koolshare-router-v2.37

软理由镜像包openwrt-koolshare-router-v2.37

2023-12-16

软路由硬盘镜像写入工具DiskImage-1-6-WinAll

软路由硬盘镜像写入工具DiskImage-1-6-WinAll

2023-12-16

Android-OPhone开发完全讲义源代码(1)

绝对是全的。因为CNDS限制文件大小,所以分开传了,这是2到12章的。13都25章请站内搜索Android-OPhone开发完全讲义源代码(2)

2012-10-15

svn1.6安装包和教程

windows版:svn1.6.16客户端、服务器端,eclipse和myeclipse的svn插件。svn安装教程,eclipse插件使用教程,svn客户端使用教程,svn启动配置。

2013-06-29

jquery1.8帮助手册

最新的jquery1.8帮助文档。chm格式。分享一下吧!

2012-10-11

适合windows的Inconsolata字体

传说中最适合编程的字体(看着舒服且清晰),因为原版的在windows中都会变得模糊,而这个是经过谷歌改良的,在windows中不需要其他任何辅助软件,就可以十分的清楚!找了1天,好不容易找到的!

2013-05-17

Android/OPhone 开发完全讲义源代码(2)

Android/OPhone 开发完全讲义源代码13到25章,由于CNDS限制文件大小只能分开传,2到12章请站内搜索Android/OPhone 开发完全讲义源代码(1)

2012-10-15

eclipse4.2_juno中文包官方下载

最新版eclipse4.2——juno中文包官方下载。解压后直接将文件复制到eclipse对应文件下。重新启动eclipse,汉化完成。

2012-10-11

android版飞鸽源码

是从网上找到的资源,测试过了能用。仿照QQ做的,能对话和传输文件。

2012-10-12

Android中文API

Android中文API合集。是CHM格式的,找了好久!分享一下

2013-03-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除