![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 61
小路塔
目前发量还行
展开
-
(Ubuntu 18.04) Android framework R版本S版本环境配置及使用 ninja 快速编译
Android R 和S版本的编译,首先是环境配置,配置好环境之后,需要的不仅仅是push framework.jar 这么简单,需要push的还有其生成的附属文件。如果是make framework 后面只能编译一个寂寞,需要 make framework-minus-apex services,才能生成对应的jar包。1.环境配置(Ubuntu 18.04)安装openjdk8-jdksudo apt-get install openjdk-8-jdk安装fastbootsudo原创 2021-12-15 13:15:10 · 3111 阅读 · 0 评论 -
系统添加自定义路径属性到系统属性中
在init.c文件main函数中会调用start_property_service(),而它分别调用load_properties_from_file函数读取PROP_PATH_SYSTEM_BUILD(/system/build.prop)、PROP_PATH_SYSTEM_DEFAULT(/system/default.prop)和PROP_PATH_LOCAL_OVERRIDE(/data/local.prop)存放系统属性的文件并设置到系统属性。编译时由build/tool/buildin.原创 2021-06-16 10:01:19 · 439 阅读 · 0 评论 -
Java ⼆叉树操作
根据任务需求,车机系统应该支持U盘升级功能,具体的逻辑是插上优盘APP选择好U盘文件,之后进行进入Recovery进行升级,但是Android升级的时候挂载U盘的时机非常的晚,这就需要修改源码,能够shi...原创 2021-06-15 18:01:30 · 562 阅读 · 4 评论 -
Android 11 锁屏调用相机android.permission.SYSTEM_CAMERA报错
遇到一个问题,在锁屏状态下调用相机被杀掉,查看了一下日志在调用相机的时候报了一句权限拒绝的语句为android.permission.SYSTEM_CAMERA 当时看到这个权限之后感觉mei原创 2021-06-12 10:02:01 · 5057 阅读 · 3 评论 -
Java 单向列表的几种操作方式(删除,查找环,环入口)
package com.ccl.demo;import java.util.HashSet;import java.util.Stack;public class StackUtils { class Node{ int data; Node next; public Node(int data,Node next) { this.data = data; this.next = next;.原创 2021-06-11 22:58:28 · 606 阅读 · 1 评论 -
Android Hook动态替换目标Activity(免AndroidManifest注册 )
Android 7.1 APP 启动流程分析里面原创 2021-06-07 17:33:38 · 1534 阅读 · 3 评论 -
使用FFMPEG 模仿微信拍视频
难得有点空闲,就想到了微信经常用的聊天是用什么做的,因为之前自己是做系统Camera的所以就看了一眼,就能发现,微信聊天使用的不是原生相机,那么问题来了,微信使用的是什么相机?仔细一想,不同的手机平台原生相机相同的时间录制视频大小,码率大小,帧率大小都不可控,为了统一视频格式微信自己对视频进行自己生成,倒不如自己去进行视频的合成,想到了之前学习的FFMPEG,FFMPEG其功能非常强大(图片和昌视频,视频进行抽帧等等功能)可以对输入的视频流进行独立的合成,不用受用于系统厂家原生相机的限制。原理其实非原创 2021-04-27 20:17:44 · 298 阅读 · 0 评论 -
Android通过adb shell am broadcast发送广播 参数说明
通过命令行执行adb shell am broadcast发送广播通知。adb shell am broadcast 后面的参数有:<INTENT> specifications include these flags and arguments:[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>][-c <CATEGORY> [-c <CATEGORY>] ...][-e|--e原创 2021-03-24 10:53:53 · 7944 阅读 · 1 评论 -
App性能优化分类以及工具介绍
Android性能优化.xmind下载原创 2021-02-05 20:58:27 · 193 阅读 · 0 评论 -
AndroidStudio 配置 性能优化埋点AOP-AspectJ
AOP-AspectJ在buildscript的dependencies中添加如下代码 classpath 'org.aspectj:aspectjtools:1.9.2' classpath 'org.aspectj:aspectjweaver:1.9.2'在library/module中添加依赖implementation 'org.aspectj:aspectjrt:1.9.2'添加gradle任务import org.aspectj.bridge.IMessa...翻译 2021-01-30 14:56:14 · 386 阅读 · 0 评论 -
UbUntu 下反编译APK
反编译需要将apk反编译成jar包,然后使用jadx工具进行查看源码。最好是配合AndroidStudio的 Profile or Debug APk 这样的话可以查看到很多的资源文件名和AndroidManifest.XML的类名代码。总体分为如下几个步骤。1.下载enjarify 反编译apk$ git clonehttps://github.com/google/enjarify.git$ chmod 777 -Renjarify2,下载jadx 并且进行 g...原创 2021-01-19 17:51:54 · 1028 阅读 · 0 评论 -
Android 7.1 高德导航和蓝牙音乐卡顿问题 & 蓝牙电话和高德语音播报混音问题
此文章主要解决三个问题1.高德导航的时候打电话会出现混音问题。2.蓝牙音乐在播放的时候导航界面语音播报蓝牙音乐会暂停,播报结束会恢复播放不能同时输出问题。3.蓝牙音乐在播放的时候和导航界面的语音播报混音输出的时候会有蓝牙音乐非常频繁且非常短暂卡顿的问题。涉及的路径:packages/apps/Bluetooth/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachine.javapackages/apps/Blueto.原创 2021-01-19 17:15:40 · 3211 阅读 · 0 评论 -
Android车载蓝牙文件传输自动接受和弹窗接收 (Android5.1 & Android 7.1)
车机蓝牙作为从端的存在,限制了不少的功能,目前公司需要做车载蓝牙文件传输操作,但是车机系统修改的时候把原生的systemUI进行了定制,导致传输的时候不能进行弹窗确认,那么系统蓝牙也要做对应的修改才能进行文件的传输.如果不知道如何进主从设置的可以看看Android 7.1 系统 部分功能修改 汇总这篇文章进行修改 .接收的文件都在/sdcard/bluetooth/目录之下首先将packages/apps/Bluetooth/res/values/config.xml 文件中的profile_s..原创 2020-11-19 16:36:27 · 4604 阅读 · 0 评论 -
android源代码在线查看
国内网络在线查看:http://androidxref.com/https://www.androidos.net.cn/sourcecodehttps://github.com/aosp-mirrorAndroid 官方的网址:https://source.android.com/sourcehttps://android-review.googlesource.com/q/status:open原创 2020-09-09 09:59:45 · 331 阅读 · 0 评论 -
Android 7.1 系统 部分功能修改 汇总
1.修改蓝牙为从端device/qcom/msmxxx/system.prop//设置成从模式persist.service.bt.a2dp.sink=truepersist.service.bt.hfp.client=truedevice/qcom/msmxxx/overlay/packages/apps/Bluetooth/res/values/config.xml<?xml version="1.0" encoding="utf-8"?> <resour.原创 2020-06-18 10:47:43 · 1647 阅读 · 0 评论 -
Android Studio 生成含第三方jar包 以及引入指定的jar
对于一些要使用修改了系统的API的应用 ,使用AndroidStudio不能编译APK,导入自己编译的framework.jar 进行编译APK整体编译系统后找到classes.jar包classes.jar包就是 framework.jar 如下:fclasses.jar 路径out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jarbuild.gradle 添加dependencies {..原创 2020-05-27 17:57:10 · 1264 阅读 · 0 评论 -
Android Q存储SD卡-Android29 存储外置SD卡
最近公司相机升级到AndroidQ 遇到无法存储SD卡,原来是Goole抛弃了原有的API(不是过时,是抛弃,导致之前的存储API不能用)查看Google API 进行了代码更换, 在在更换过程中遇到了比较多的坑,将部分关键代码记录下来,方便下次使用。如果不使用外置可插拔SD卡的AndroidQ存储可以使用如下方法暂时不用 AndroidQ的存储方式在AndroidManifest.xml...原创 2019-08-14 18:37:58 · 5320 阅读 · 4 评论 -
生成Image对象
Image对象在 拍照的时候在底层可以获取到,主要是拍照的时候用的ZSL拍照需要两次处理,当第一次拍照获取到Image之后然后设置用ImageWrite 的queueInputImage 方法进行降噪处理和曝光值处理,目前公司的需求是需要 第一次拍照的时候 就将一个Image传递下去,Image不能直接获取,最后想到了一个方法,读取一个byte 然后再填充到 Image里面具体关键代码...原创 2019-08-22 15:36:21 · 1300 阅读 · 0 评论 -
Android 7.1 车机 下载 Android 系统 在线升级,将安装包放到/data/下进行升级
最近按项目要求,需要做一个车机Android在线升级操作,但是cache内存太小了,最后只能寄存希望在 data/文件夹下,但是data/目录在6.0之后禁止recovery读取data文件.最后的解决方案是在/data/文件下创建一个系统app能够操作的文件夹,进行升级操作.1.升级流程Android自带升级流程 API RecoverySystem.java(framewo...原创 2019-10-14 17:48:57 · 25555 阅读 · 2 评论 -
开发一款抓取Android系统Log的APP(logcat, kernel, Memory, cpu)
近期项目需要一款抓取系统log的实用工具,具体的内容包括kernel中的log, cpu中的log, memory 中的log, 以及system中的log,在Android4.1之后 认为应用读取系统的log是不安全的,所以要对apk进行系统签名才能读取系统log,如果不能进行系统签名,那么就通过相应的adb命令进行读取.通过功能分析,做的步骤分为如下大概几步:1.工具可以开启自启动进...原创 2019-11-06 16:02:27 · 3951 阅读 · 4 评论 -
Android开机自启自动轮播图片或自动轮播视频APP
之前实验室有很多展示的设备,每次上电之后还需要单个点击打开每个展示设备开发好的APP,因为每个设备没有触屏,需要抱着电脑去实验室 挨个连接USB 使用scrcpy 挨个机器点开,每次搞完都是一身汗,作为一个程序员去过一次之后就不想去了,而且还经常有领导视察,来回断电上点太频繁,索性开发一款开机自启动的APP就可以省去好多时间,只需要管理实验室的人每次上电就行了,不需要我每次报个电脑去实验室了,这样...原创 2019-11-22 23:00:49 · 4439 阅读 · 3 评论 -
自定义UI渐变色圆形进度条 & 水波进度条
最近公司需要两个动画效果,做出来了,记录一下方便后期使用.一个是渐变色闭合圆环(起始色和结尾色颜色无缝闭合).一个是 未开始下载显示建立下载链接,下载过程中更新进度百分比正在下载以及水波纹更新和下载完成之后显示下载完成以及对勾动画.具体效果如下:具体的功能介绍都在代码中,因UI绘制大部分都是在分部执行动画和绘制,不过多陈述,代码里面有注释,可以在文章尾部下载代码进行查看....原创 2019-12-09 11:55:43 · 687 阅读 · 0 评论 -
Ubuntu 命令行 安装 OpenJDK ,JDk 以及JDK版本切换
Ubuntu 编译源码必须使用 OpenJDK,而且每个Android版本对应的OpenJDK版本各不相同,因此需要配置多个OpenJDK,配置比较耗时和麻烦,使用命令行安装省时又方便.默认JDK 安装:~$ sudo apt-get update~$ sudo apt-get install default-jreOracle JDK : 6, 7, 8, 版本...原创 2019-12-09 20:30:16 · 1302 阅读 · 0 评论 -
Android 7.1 修改源码实现app的静默安装 & 安装完成之后自动打开安装的应用.
真正的静默安装是不需要用户进行任何点击操作的,目前大部分博客所说的静默安装还是需要弹出确认界面,让用户点击授权安装,我认为真正的静默安装应该是不需要用户任何确定操作,就比如现在的好多应用市场安装软件才是真正的静默安装.目前公司也想要实现和应用市场类似的安装方式,我们不难发现 像小米和华为 google都有个人的应用市场,而这写应用市场的app并不互通,比如我将小米应用市场app安装到华为手机上...原创 2019-12-17 11:41:07 · 2035 阅读 · 1 评论 -
Android 7.0 & 9.0 修改源码去掉动态权限 & 权限白名单设置
最近公司集成很多第三方APP,有很多的APP并没有进行动态权限申请,导致很多低版本的应用在大于6.0的系统上不能进行运行的问题,为此公司做出了让步,决定去到弹窗,只要是应用在AndroidManifest.xml进行申请的权限都可以使用.预装的第三方app有两种:一种是adb push 到 pri-app下的另一种是直接把代码放在package下编译出来的app。我们是要所有app都不弹出...原创 2019-12-25 20:25:36 · 4522 阅读 · 0 评论 -
Android 系统启动流分析 & Zygote启动流程分析
本文是给予Android 7.1进行分析 Zygote在Android系统扮演着不可或缺的角色,Android系统的启动首先需要Zygote参与,比如启动SystemService , 还有一个就是孵化应用的进程,比如我们创建一个Activity也是需要Zygote参与. 那么Zygote是怎么启动的? 首先是开机的时候会Linux会先...原创 2020-04-22 21:13:21 · 1798 阅读 · 0 评论 -
Android 7.1 增加屏幕边缘滑动事件(手势滑动)两种方式(Back,Home,Menu功能键) 免开启无障碍功能
目前公司在做新项目开发,项目目前是不让有Back,Home,Menu实体按键,这就导致了一个问题,点开其它应用无法返回到桌面,当然些问题对于做开发的我们肯定是难不到的,如果我们开发碰到这问题肯定是adb链接 终端输入对应的key值 命令就搞定了例如$adb shell input keyevent 4或者我们使用投屏神器 scrcpy也能搞定.问题是产品要面向客户展示,总不...原创 2020-04-23 14:11:31 · 3682 阅读 · 0 评论 -
Android 源码本地编译脚本 & 编译Android系统
编译系统的方法有很多种,使用Docker 或者是使用jenkins编译,方法千万种.网上有很多的方法,这里就不再说了篇文章主要是针对本地编译.最近学习了脚本,也尝试写了一个Android系统编译的脚本,重点分析一下脚本,算是对之前学习脚本的一个小小的总结.1.一套Android源码2.Ubuntu环境 以及JDK环境正常本地编译步骤1.source build/envsetu...原创 2020-09-24 11:32:36 · 1330 阅读 · 0 评论 -
MTK Android User版本实现 root 功能 & 可进行APK的删减 和 系统img的替换
最近项目需要,需要实现一个功能需要Android在user版本的状态下可以进行烧制system.img和 可以进行对系统的system/app下面的APK 以及 data/* 下所有的文件进行烧录.修改过程中也遇到了很多的坑能,在此记录一下,方便后期翻阅,也让修改的同学们别踩到我遇到的坑.遇到最大的坑就是 User版本编译出来之后 可以root 也可以remount$ adb rootadbd is already running as root$ adb remountremount su..原创 2020-05-08 17:32:32 · 3662 阅读 · 0 评论 -
Android 应用提供SDK Jar包给第三方使用 (设计思路 以及实现步骤)
最近想总结一下关于应用如何封装自己的SDK给第三方应用使用,提供jar包给第三方使用是现在比较常见的方式,方式有很多种,但是具体的大体思路都是一样的,今天写了一个SDK封装的大体框架Demo,方便后期查查阅:工具基于AndroidStudio 3.6.3版本AndroidSDKDemo大体的设计思路分为三个步骤第一: 服务端作为服务端 我们需要建立自己的aidl 以及实现类 方便第三方调用的时候 将服务端代理的句柄传给SDK第二: SDK作为服务端和客户端的中间代理,可以直接拿到服务代.原创 2020-05-09 17:59:22 · 4229 阅读 · 0 评论