- 博客(36)
- 资源 (4)
- 收藏
- 关注
原创 Android remount failed: Permission denied 失败解决方法
2.adb reboot bootloader进入bootloader模。1.进入开发者模式,打开OEM 解锁。
2025-02-14 14:16:05
572
原创 如何通过 bugreport 分析 Android 系统日志?
它包含了系统运行的各种关键日志,包括 main.log、event.log、ANR、Crash 等。通过 bugreport,我们可以快速分析 应用崩溃(Crash)、ANR(无响应)、系统事件(event.log),快速定位 Android 系统的问题。Crash(崩溃) 主要由于: ✅ 空指针异常(NullPointerException)main.log 主要记录 系统组件 & 应用的运行状态,包含: ✅ 应用启动 / 退出。ANR(应用无响应) 发生在: ✅ 主线程阻塞(耗时任务没放到子线程)
2025-02-10 14:51:53
1528
原创 整机开发常见名词解析,一篇带你全搞懂!
SystemServer 是 Android 系统的核心进程,在 Zygote 启动后,会 fork 出 SystemServer 进程,负责管理所有的 系统服务(System Service)。ODM 指的是 代工厂,如 闻泰、华勤、龙旗,他们为 品牌厂商(OEM) 设计、生产手机,然后贴上品牌商 Logo 进行销售。OEM 指的是品牌商,如 小米、OPPO、vivo,他们主要负责市场、品牌、产品定义,真正的生产、研发可能由 ODM 代工。
2025-02-10 14:36:13
785
原创 Android 系统定制:常见名称修改全解析!
在 Android 系统开发和 ROM 定制中,我们经常需要修改一些默认名称,例如 蓝牙名称、设备名称、热点名称 等。以上就是 AOSP & ROM 定制中的常见名称修改技巧,无论是 蓝牙、设备名称、热点名称,都可以通过 修改源码 & overlay 机制 进行定制。可以看到,默认热点名称是 wifi_tether_configure_ssid_default + 随机数。这里的 BTM_DEF_LOCAL_NAME 定义了默认的蓝牙名称,修改它可以影响蓝牙设备的显示名称。
2025-02-10 14:17:32
1013
原创 深入解析 Android 系统属性 & 跨进程 API:SystemProperties、ContentObserver 的使用
功能 | SystemProperties | ContentObserver | |—|—| | 数据存储位置 | 共享内存 | SQLite、ContentProvider | | 跨进程支持 | ✅ 是 | ✅ 是 | | 是否支持监听 | ❌ 不支持 | ✅ 支持 | | 适用场景 | 获取系统属性 | 监听数据库/设置变更 | | 修改方式 | SystemProperties.set | 通过 Settings.System.put 修改 |
2025-02-10 14:07:33
875
原创 AOSP Overlay 完全指南:静态 Overlay vs 动态 Overlay
本篇文章将带你 彻底搞懂 Overlay,包括 静态 Overlay(Static Overlay) 和 动态 Overlay(Runtime Overlay) 的区别、使用方法、源码解析!Overlay(叠加资源) 允许你在不修改 AOSP 源码的情况下,替换系统的 布局、颜色、样式、图片、默认值 等资源。厂商 ROM 适配 通常结合 静态 Overlay(用于 ROM 定制)+ 动态 Overlay(用于个性化切换)。🔹 3. 动态 Overlay(Runtime Overlay)
2025-02-10 13:55:05
649
原创 [特殊字符] AOSP 开机动画定制:打造专属 BootAnimation!
在 Android 定制 ROM 或 品牌机 UI 设计 过程中,修改开机动画(Boot Animation) 是常见需求。📌 方法2(源码): 修改 AOSP BootAnimation.cpp,适合 深度 ROM 适配。📌 方法1(简单): 直接替换 bootanimation.zip,适合 个人定制。本篇文章将 手把手带你修改 AOSP 开机动画,让你的 ROM 与众不同!✅ 动态调整帧率,避免卡顿(降低 desc.txt 里的 FPS)。如果你要在 ROM 级别 修改开机动画,应该修改 系统源码
2025-02-10 13:44:37
651
原创 AOSP 编译配置:深入解析 Android.mk 和 Android.bp
基础篇.系统 mk_bp 讲解📢 1. 职业规划篇📢 2.基础篇📢 3. 系统应用篇📢 4. 系统篇📢 5. 性能篇(省)低内存优化(稳)稳定性优化(快)开机优化framework交流,答疑:251662478🔹 一、Android.mk 文件介绍Android.mk 是 AOSP 传统的 Makefile 文件,主要用于描述 如何编译可执行文件、共享库、静态库和 APK。📌 Android.mk 结构🔹 二、mk 文件中重要的编译规则。
2025-02-10 11:40:52
1716
原创 Android 源码目录全解析:开发者必知的 AOSP 结构!
packages/apps:Android 系统应用,比如 设置(Settings)、相机(Camera)、联系人(Contacts) 等。适合深入学习的方向:如果你想优化 Android 网络、安全、数据库性能,可以深入研究 external/ 目录。适合深入学习的方向:如果你想研究 刷机、Recovery 定制,可以研究 bootable/recovery。适合深入学习的方向:如果你想研究 ART 虚拟机、Java 执行环境,可以深入学习 art/ 目录。
2025-02-10 11:32:45
1111
原创 Android 编译报错 ‘missing separator’?Makefile 语法你真的懂?
如果 Makefile 里出现 错误的缩进、拼写错误或者非法符号,编译时就会报 missing separator。今天我们就来深挖 missing separator 报错的 根本原因,并教你 如何快速修复!💡 只要掌握 Makefile 语法规则,就能轻松修复 missing separator 报错!❌ 错误点:Makefile 必须是 Unix 格式,Windows 格式可能导致解析错误。❌ 错误点:使用了 4 个空格 缩进,导致 missing separator。
2025-02-10 11:14:36
1008
原创 AOSP 适配新机型?BoardConfig.mk 你一定要懂!
如果你的 BoardConfig.mk 配置错误,AOSP 编译出来的系统可能会 卡 Logo、卡 bootloader、无法启动!如果你的设备 默认使用 f2fs,但 BoardConfig.mk 里配置的是 ext4,那么刷机后可能 无法正常启动!如果你想让 AOSP 成功适配到你的新设备,那么 BoardConfig.mk 你一定要懂!下面,我们来 拆解 BoardConfig.mk 的核心参数,带你一步步看懂它的作用!今天,我们就来 手把手拆解 BoardConfig.mk,让你彻底搞懂它的作用!
2025-02-10 11:09:00
1048
原创 Android 源码下载这么慢?1 个设置提升 3 倍速度!
很多开发者在下载 AOSP 源码 时,都会遇到 下载速度慢、容易断连 的问题,几十个 GB 的源码,下载一整天都不一定完成!📌 作用:让 Git 自动重定向 AOSP 源码的下载地址,从国内镜像拉取,下载速度大幅提升!今天给大家分享 1 个关键设置,让你的 AOSP 下载速度 直接提升 3 倍以上!💡 只要简单 3 步优化,就能让 AOSP 源码下载速度 提升 3-5 倍!我们可以 换成国内的镜像源,再开启 多线程并行下载,速度直接起飞!📢 1. 职业规划篇。📢 3. 系统应用篇。
2025-02-10 11:05:08
754
原创 android framework开发如何入门
Repo 是 Google 开发的用于管理多个 Git 仓库的工具,在 Android 开发中,由于 Android 源码由众多 Git 仓库组成,使用 Repo 可以更方便地进行统一管理。
2025-01-14 16:30:12
1790
原创 安卓应用转型指南:探秘 Android 系统开发各岗位机遇
System App 团队负责开发 Android 系统中预装的各类系统应用程序,这些应用是用户与 Android 设备进行日常交互的直接窗口,直接影响用户的使用体验。像电话应用要实现拨打电话、接听来电、通话记录管理以及通话设置等功能;短信应用需保障短信的收发、编辑、存储以及彩信相关功能正常运行;联系人应用要高效管理联系人信息,支持添加、编辑、分组、搜索等操作,并与其他系统应用协同工作,提供便捷、流畅的使用体验。Camera 团队在 Android 系统里承担着相机相关功能开发的关键任务。
2025-01-08 16:43:57
914
原创 解锁 Android 职业生涯密码:各阶段发展指南与规划建议
刚踏入 IT 行业,通常拥有 1 - 3 年的工作经验,这个阶段是积累基础编程知识和实践经验的重要时期,也是开启 Android 开发职业生涯的起点。
2025-01-08 14:35:34
1034
原创 Android 突破边界:解密google Partner机制获取Resource
值得注意的是,通过 Partner 机制获取 Partner APK 的资源文件不仅仅是一种访问资源的方式,同时也是一种跨进程的通信方式。在 Android 应用开发中,除了可以查找系统中的特定 APK 并获取其信息外,还可以通过 Partner 机制获取 Partner APK 的资源文件,同时这种机制也是一种跨进程的通信方式。本文将进一步探讨这些内容。通过这种方式,我们可以利用 Partner 机制轻松地访问 Partner APK 中的资源文件,从而实现更加灵活和定制化的功能。
2024-08-28 11:16:42
559
原创 Android中的Settings.System, Settings.Secure和Settings.Global:区别与用途
在Android开发中,和是用于访问设备设置的三种不同方式。
2024-08-21 08:41:43
1191
原创 emulator 执行后报错,没有模拟器启动
在 Android 开发和测试中,有时候遇到模拟器启动时的问题,例如选择的 lunch 设备型号不支持模拟器。本文将介绍如何通过修改文件并重新编译来解决这个问题,并最终在模拟器上实现 root 和 remount 操作。
2024-08-20 14:25:17
551
原创 在 Android 模拟器上实现 root 和 remount 操作
在 Android 开发和测试中,有时需要在模拟器上执行高级操作,如修改系统或挂载磁盘为可写状态。本文将介绍如何在 Android 模拟器上进行 root 和 remount 操作。
2024-08-20 12:37:57
953
原创 深入探讨 Android 系统调试:Bugreport、Event Log、ANR Trace 详解
Bugreport 是 Android 提供的一种调试工具,它生成的报告包含了设备运行状态的详细信息。设备基本信息:包括设备型号、构建版本、内核版本等。这些信息可以帮助你快速了解当前设备的硬件和软件环境,便于分析问题的背景。系统服务状态:展示了当前系统的运行状态,包括活动管理器(Activity Manager)中的任务栈信息。这部分信息对于分析系统级别的问题非常重要。系统日志:包括崩溃日志、应用异常(如 FATAL EXCEPTION)的堆栈跟踪。通过这些日志,你可以精确定位导致应用崩溃的原因。设备配置。
2024-08-20 12:25:38
861
原创 如何有效学习Android Framework:从系统编译到Framework深入
学习Android Framework是一个需要持续探索和实践的过程,但通过系统编译、系统应用理解、深入Framework以及实际调试和案例实践,你将掌握从系统底层到高层应用的完整技能体系。这不仅能够让你在Android开发领域立于不败之地,还能为你打开更多职业发展的机会。如果你对Framework开发感兴趣,欢迎加入我的课程,和我一起深入探索Android系统的奥秘吧!QQ群:251662478 加入我们的QQ群,与更多志同道合的开发者一起交流学习。
2024-08-20 11:44:24
874
原创 应用到framework从0开始——编译环境搭建
本系列文章,给身为android应用开发得程序员,期望转型到android framework开发的工程师提供基础的入门教学,跟着本系列课程就能从应用开发入门到fw开发的门槛中,最终能够清楚FW开发是一个什么样的事情,以及大多数在岗的odm,oem厂商或者是外包服务商的FW开发工程师,他们每天的日常是什么,让更多的android应用开发者心中有数,自己是否能够转型去做android 系统的开发。当前就业环境形式不好,为的就是给大家更多的选择,更好的规划自己的未来。
2023-07-14 19:49:31
685
转载 zookeeper在linux上的安装
Zookeeper 在Linux系统的安装安装步骤:第一步:安装 jdk(此步省略,我给大家提供的镜像已经安装好JDK)第二步:把 zookeeper 的压缩包(资源\配套软件\dubbox\zookeeper-3.4.6.tar.gz)上传到 linux 系统。Alt+P 进入SFTP ,输入put d:\zookeeper-3.4.6.tar.gz 上传第三步:解压缩压缩包tar ...
2018-10-30 10:15:00
233
原创 rabbitmq的简单使用
1.rabbitmq 在springboot项目中的配置。配置host、username、pwd,默认端口5672.网页地址端口15672.2.rabbitmq的路由类型:(1).fanout广播,收到消息,发送给所有binding的queue(2).direct单点发送,指定exchange以及key,发送给与key值完全相同的queue(3).topic匹配发送,指定exchange以...
2018-10-24 14:18:09
358
转载 springBoot数据库连接池常用配置
在配置文件中添加配置如下(我使用的是多数据源):spring.datasource.primary.url=jdbc:mysql://localhost:3306/test?useUnicode\=true&characterEncoding\=utf-8 spring.datasource.primary.username=test spring.datasource.prima...
2018-06-22 15:04:35
2917
原创 redis+aop实现数据缓存
redis+aop实现数据缓存在ssm项目下首先使用spring集成redis 我用的是maven项目,先导入必要的依赖。这里的集成也是花了点时间,因为jar版本冲突的问题,tomcat启动老是找不到jar。用对了版本之后,还是有异常,就去project structure查看了一下,发现直接在pom.xml添加的jar并没有被添加到打包项目的lib中。。。,导入之后就好了 这个是集成re...
2018-06-02 09:48:20
2903
原创 redis的启动关闭以及开启日志输出
1.redis的启动,进入redis/src目录下,使用命令 ls查看文件 2.查看到有redis-server文件,说明进入目录正确 执行 ./redis-server(./表示当前目录下,这种启动方式是前台启动。一旦有其他操作,redis自动关闭) 所以一般使用 ./redis-server &后台启动 3.使用 ps -ef|grep redis 查看redis是否启动 ...
2018-05-25 08:56:54
22918
原创 Linux服务器安装redis
在官网redis官网下载最新的redis压缩包,为.tar.gz后缀。用ftp或者其他工具上传到服务器你想放置的目录下使用 tar -zxvf redis-3.2.9.tar.gz(你的安装包文件名)进入解压后的文件夹执行make,cd redis-3.2.9.tar.gz 然后make先看最后一行,可能会出现Error 2,两个错误。然后网上看,有个gcc:Command not f...
2018-05-24 17:25:32
691
原创 Netty框架梳理
1.Netty可以用于设备之间的通信。可以用心跳机制,一直保持长连接,也可以用于服务端向客户端推送消息。 2.其中的Future、回调和ChannelHandler,内部都是采用了一种回调的方式去相应发送回来的消息。 3.Netty通过选择器,消除了所有本来将需要手动编写的派发代码。再每个Channel建立起来之后,会自动为其分配一个EventLoop,用于处理所有事件: 注册感兴趣...
2018-05-05 09:14:18
212
原创 UEditor与springmvc整合——解决后端配置项没有正常加载,上传插件不能正常使用!
这里记录一下UEditor跟springmvc整合出现的问题,整合网上给出的过程很详细,就不多少了,具体可以参考: springmvc与百度Ueditor整合 这里使用的是将ueditor-1.1.2.jar 源码整合到自己的项目中使用。下载下来的ueditor-1.4.3.3中的controller.jsp 这里把上传啊,管理图片等action直接指向这个ueditor-1.1.2.jar包...
2018-04-24 15:02:29
11875
3
原创 android——截屏共享的坑,mmp
最近要做android屏幕共享,使用netty框架通信不同的android设备。然后服务端不停截屏把bitmap转化成byte[]写入通道中。 然后就是各种坑: netty框架通道传输的字节大小限制 局域网内搜寻服务端 然后最坑的截屏: 使用view绘制的效果太差,很多画面都绘制不出来 然后看到有vysor的源码,想着人家都做出来了,把截屏套用过来不就行了么,然后就是各种反射,aidl...
2018-04-14 15:19:29
434
原创 android 反射使用——反射获取IWIndowManager中方法的使用
话不多说直接上代码,代码含义注释里有Method getRotation ;Object IWindowManager ;public void getRotation(){ try { //加载得到ServiceManager类,然后得到方法getService。 Method getServiceMethod = Cl...
2018-04-14 11:05:08
6772
转载 常见的运行时异常分类
一般面试中java Exception(runtimeException )是必会被问到的问题 常见的异常列出四五种,是基本要求。更多的。。。。需要注意积累了常见的几种如下:NullPointerException - 空指针引用异常 ClassCastException - 类型强制转换异常。 IllegalArgumentException - 传递非法参数异常。 Arithm
2018-01-07 11:50:30
3350
转载 Spring中各个jar包的作用
spring.jar是包含有完整发布的单个jar 包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到 spring-mock.jar来进行辅助测试,正式应用系统中是用不得这些类的。 除了spring.jar文件,Spring还包括有其它13个独立的jar包,各自包含着对应的Spring组件,用户可以根据自己
2017-12-29 15:06:04
222
原创 java实现微信小程序第三方登录-保存用户至自己的服务器
梳理一下最近自己编写的代码。微信小程序交给第三方管理,首先要编写接口获取授权码,component_access_token,还需要第三方的component_appid,如果这两步没有完成,就无法完成以下步骤。在小程序中获取用户信息有两种方式。其一,在小程序中可以使用wx.getUserInfo这个接口获取当前打开小程序用户的信息。但是,我们知道小程序就只是前端而已,它的大小最大也就几M而已,所以
2017-12-29 14:22:24
13727
27
ormlite包嘻嘻嘻
2018-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人