自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Kris Fei's blog

让分享成为一种习惯

  • 博客(726)
  • 资源 (12)
  • 收藏
  • 关注

原创 [RK3399][Android7.1] 调试笔记 --- Android7.1 Launcher选择位置

Platform: RK3399OS: Android 7.1Kernel: v4.4.83一开始没找到在哪选择切换Launcher,记录下。步骤:1. 进入Settings app2. Apps3. Settings4. Home app参考:How to set home launcher in Android 7.0 Nougat and 8.0 Oreo...

2018-11-14 13:31:39 2105

原创 [RK3399][Android7.1] 调试笔记 --- I2S1工作输出是12MHz问题

Platform: RK3399OS: Android 7.1Kernel: v4.4.83现象:使用I2S1通道,测量到的I2S MCLK是12MHz.理论上应该是11.288MHz.原因:rk3399平台有三路I2S(其中一路内部使用,可以不管),但是MCLK只有一个,也就是说两路I2S只有一路能占用。而默认的sdk中,I2S1输出时,使用的是I2S0的MCLK,I2S0默认是...

2018-11-13 16:19:19 4383

原创 [RK3399][Android7.1] 调试笔记 --- SD卡升级不会清除data

Platform: RK3399OS: Android 7.1Kernel: v4.4.83现象:使用update.img制作sd卡升级完成后发现不会清除data分区原因:像rk3288 android6.0上会在recovery中设置misc分区,写一条wipe data的命令,下次重启后uboot会读取,然后进入recovery做清除的动作。但是在rk3999 android...

2018-11-12 18:11:46 1619 5

原创 [RK3288][Android7.1] 调试笔记 --- 24bit bmp 转成 8bit bmp

Platform: RK3288OS: Android 7.1Kernel: v4.4.83背景:在rk3288平台上uboot logo发现24bit bmp不能正常显示,参考原始logo.bmp是8bit.然后使用命令convert -compress rle -colors 256 src.bmp logo.bmp转出来的却是32bit bmp,不知道是不是我的ubuntu16...

2018-11-10 13:50:08 1676 2

原创 [RK3399][Android7.1] Vmware虚拟机里的Ubuntu硬盘空间越来越大

Platform: RK3399OS: Android 7.1Kernel: v4.4.83背景:Vmware里的Ubuntu系统随着使用会越来越大,比如编译了Android系统,即使编译后删除了也是占虚拟硬盘空间,最终会吃掉物理硬盘空间。解决方法:使用Vmware自带的vdiskmanager工具(在安装目录下)压缩虚拟机硬盘空间。命令:vmware-vdiskmanager...

2018-11-10 13:40:02 861

原创 [RK3399][Android7.1] 调试笔记 --- OTA diff升级输入法异常

Platform: RK3399OS: Android 7.1Kernel: v4.4.83现象:之前因为版权的原因替换了输入法。请参考:[RK3399][Android7.1] 调试笔记 —谷歌拼音替换搜狗输入法但是再做OTA升级的时候发现输入法升级异常。原因:做OTA diff包升级不会清除data分区,而默认的输入法配置是放在/data分区的,导致系统起来找不到而使用默认的...

2018-11-09 22:43:27 1768 1

原创 [RK3399][Android7.1] 调试笔记 --- 解决开关按键时产生的Pop声

Platform: RK3399OS: Android 7.1Kernel: v4.4.83背景:按键音在打开和关闭的时候,会有pop声。原因:audio codec后面有个功放,功放一直打开着,当codec打开和关闭的时候,会有噪声带进到功放中。解决方法:注:GPIO4_D4是用来控制功放的开关。diff --git a/arch/arm64/boot/dts/rockch...

2018-11-01 14:17:12 4535 7

原创 [Tools][Vmware] 如何直接使用vmdk而不是ISO

背景:以前使用虚拟机安装Ubuntu的时候,都是通过下载ISO安装系统的方式。现在发现可以直接使用vmdk(虚拟机安装操作系统后生成的文件类型),这样就免去安装的麻烦了。下载:网上有提供了对应各种ubuntu版本的vmdk下载。下载地址:osboxes组织我下载了Ubuntu 16.04版本系统信息和安装要求:安装:下载vmdk解压后,Vmware工具是不支持直接打开vm...

2018-10-29 09:44:09 34616 3

原创 [RK3399][Android7.1] 调试笔记 --- JNI层输出带TAG的Log

Platform: RK3399OS: Android 7.1Kernel: v4.4.83JNI层使用C/C++需要输出Log.如果不要TAG,那么只要如下使用就可以:#include <utils/Log.h>fun(){ ALOGE("debug log");}如果需要带LOG TAG, 那么就要按如下方式添加:#define LOG_TAG "JNI...

2018-10-26 18:02:03 864

原创 [RK3399][Android7.1] 调试笔记 ---谷歌拼音替换搜狗输入法

Platform: RK3399OS: Android 7.1Kernel: v4.4.83由于搜狗输入法存在版权原因,换成了谷歌拼音,虽然apk已经下架,但还是可以使用的。改动:diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/def...

2018-10-25 14:02:48 2400

原创 [RK3399][Android7.1] Android各个层次的版权协议

题外话:谷歌开始对欧盟用的应用收费了,不知道国内会怎么样。最近项目产品也需要关注下此信息,避免不必要的版权纠纷。Android平台,由不同模块组成,每个模块的license不一定相同。由于Android是基于Linux内核的,所以内核的license是和Linux一样基于GPLv2的。而在内核上层的Framework层,使用的是Apache2.0协议。此协议允许商用公司开发出的产品不...

2018-10-25 13:42:32 1418

原创 [RK3399][Android7.1] 调试笔记 --- Type-C USB改成Micro USB2.0 OTG

Platform: RK3399OS: Android 7.1Kernel: v4.4.83diff --git a/arch/arm64/boot/dts/rockchip/rk3399-eco.dts b/arch/arm64/boot/dts/rockchip/rk3399-eco.dtsindex 1e5e921..cacfc7b 100644--- a/arch/arm64/b...

2018-10-25 10:16:05 6115 12

原创 [RK3399][Android7.1] 调试笔记 --- JNI中的char*和byte[]数据转换

Platform: RK3399OS: Android 7.1Kernel: v4.4.83*char 转换成 byte[]byte[]在JNI层的类型是jbyteArray.void audio_callback(char *buffer, int len) { jbyteArray array = (*env)->NewByteArray(env, len); (*e...

2018-10-24 14:01:10 1580

原创 [RK3399][Android7.1] Audio中的MCLK时钟小结

Platform: RK3399OS: Android 7.1Kernel: v4.4.83Power Domain:audio codec的clk被关联到power domains中管理。rk3399.dtsi:i2s0: i2s@ff880000 { //...... clock-names = "i2s_clk", &a

2018-10-23 17:34:15 7400 8

原创 [RK3399][Android7.1] 调试笔记 --- 预编译调用第三方库

Platform: RK3399OS: Android 7.1Kernel: v4.4.83背景:现在在Framework层及以下经常会调用到第三方的C++算法库,比如语音识别,人脸识别等等。例如我这里是JNI调用一个语音处理库,这些库厂商会以非开源的so库文件形式提供。JNI在编译时需要依赖它,所以需要先预编译安装第三方库。解决方法:在同一个Android.mk中编写就行:L...

2018-10-18 15:01:26 1197

原创 [RK3399][Android7.1] 调试笔记 --- 系统音量无法调节

Platform: RK3399OS: Android 7.1Kernel: v4.4.83背景:刚开始配置完音频codec后声音是正常,后来改着改着发现音量无法调节了。调试:测试修改了下codec的输出gain值是可以调节声音的,说明问题出在软件调节声音模块。HAL层dump不同音量级别的data,发现没有变化。根据音量调节的过程,在各个层添加log查看volume的值,发现...

2018-09-27 15:58:05 3551

原创 [RK3399][Android7.1] 调试笔记 --- Codec播放音乐会有底噪

Platform: RK3399OS: Android 7.1Kernel: v4.4.83背景:移植完Codec RT5640之后,发现播放声音的时候底部有噪声。用示波器测量到的左右声道波形如下:左声道波形:右声道波形:左右声道波形:原因:一般波形上有这种有规律的毛刺基本上都是clock的问题。经后面分析查证,发现i2s1的master clock在主rk3399....

2018-09-27 15:35:57 3543 5

原创 [RK3399][Android7.1] 调试笔记 --- JNI无法访问so提示not accessible

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83背景: 之前在rk3288平台上测试的串口程序,到rk3399无法使用了,提示 "/system/lib64/libnativeloader.so" is not accessible for the namespace "classloader-namespace"具体Log:...

2018-09-10 18:58:52 7047 5

原创 [RK3399][Android7.1] 调试笔记 --- 串口JNI测试用例

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83Android并没有包含串口的JNI, 需要我们自己实现。(Android Thing已经有实现) 串口JNI的参考范例见: https://github.com/cepr/android-serialport-api。有将它修改做了实现,也分享给大家做参考。JNI部分: Ser...

2018-08-31 13:28:05 2131

原创 [RK3288][Android6.0] 调试笔记 --- tinyplay无法播放

Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92现象:执行tinyplay播放wave文件一点反应都没有,卡在那边不动。分析:系统开机之后会开打audio codec,然后过了三秒如果没有操作之后,那么就会关闭device。 从log上看,device并未关闭。08-29 13:39:55.524 215 2...

2018-08-29 18:28:58 4018 4

原创 [RK3399][Android7.1] 调试笔记 --- JNI头文件生成方法

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83先生成.class文件kris@eco:~/AndroidStudioProjects/helper/app/src/main/java$ javac com/interview/helper/NativeHelper.java对应class文件:kris@eco:~/Andro...

2018-08-24 08:57:50 619 5

原创 [Tools] [cmake] 调试笔记 --- cmake交叉编译环境配置

背景:默认cmake编译的出来的so是x86 64位(PC硬件环境),现在需要改成交叉编译适用到Android平台上。解决方法:编写一个文件名字叫: android.toolchain.cmakeset(CMAKE_SYSTEM_NAME Android)set(CMAKE_SYSTEM_VERSION 23)set(CMAKE_ANDROID_NDK_TOOLCHAIN_...

2018-08-23 16:32:59 2027

原创 [Tools] [cmake] 调试笔记 --- cmake缓存引起的一个错误

背景:修改cmake交叉编译环境的时候本来想配置CMAKE_TOOLCHAIN_FILE来改变编译工具和环境,但是编译器报了句warning Manually-specified variables were not used by the project, 然后交叉环境没配置成功。原因:我有修改了对应的CMakeLists.txt,但是缓存没变化导致再次配置的时候出现错误。...

2018-08-23 16:23:20 27344 1

原创 [Tools] [cmake] 调试笔记 --- 如何彻底清除cmake产生的缓存

背景:cmake并没有提供类似于 cmake clean 这样的方式来让我们清除产生的缓存,但是它编译的缓存(*.cmake, Makefile,CmakeCache.txt, CMakeFiles目录)会遍布各个目录。解决方法:在根部目录下建立一个build目录,然后在build目录中编译即可。#mkdir build#cd build#${path}/cmak...

2018-08-23 15:59:06 77743 8

原创 [RK3399][Android7.1] 调试笔记 --- WiFi扫描周期规则

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83亮屏情况: 1. 在WiFi Settings界面,无论WiFi是否有连接,固定扫描时间间隔为10s。 2. 在非WiFi Settings界面,无论WiFi是否有连接,以2的倍数慢慢拉大扫描周期,最小为20s,最大为160s灭屏情况: 1. 当开启了PNO并且WiFi已经连接时,...

2018-08-09 17:50:30 3230

原创 [RK3399][Android7.1] 调试笔记 --- 三路以上Camera同时预览支持

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83系统默认只支持两路Camera,只要将CameraHal中的数量限制改掉就可以了。 另外,有些地方直接用0和1表示Camera通道,也要做相应修改。注意:因为Android只定义了Front和Back两种Camera属性,所以不能使用默认的APK测试。Patch:diff --...

2018-08-08 14:59:15 7300 26

原创 [RK3399][Android7.1] 调试笔记 --- Camera动态热插拔支持

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83RK3288平台修改请参考 [RK3288][Android6.0] 调试笔记 — Camera动态热插拔支持改动如下: CameraHal部分: /* */diff --git a/CameraHal/CameraHal_Module.cpp b/CameraHal/Came...

2018-08-08 14:51:56 4701

原创 [RK3399][Android7.1] 调试笔记 --- 查看开机上一次kernel log

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83rk3288平台,rk自己实现了一套机制获取上一次的kernel log. rk3399平台,使用了内核框架中的ramoops机制。查看方法:#cat /sys/fs/pstore/console-ramoops-0要开启此功能,需要做以下几点配置(rk3399默认都开...

2018-07-26 11:08:11 4301 11

原创 [RK3399][Android7.1] 调试笔记 --- 添加重启命令恢复出厂设置

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83改动:diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsiindex 1759a91..5bf6cb9 100644--- a/arch/arm...

2018-07-26 11:03:19 2099

原创 [RK3399][Android7.1] 调试笔记 --- VFS:Can't find ext4 filesystem

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83现象: 移植rk3399时重新抓了一份code编译,发现download system.img之后无法开机。Log如下: 分析: 此问题之前在imx6平台上遇到过的,是因为系统不支持sparse image导致。 但是奇怪的是之前一直在使用,说明rk3399平台是支持spar...

2018-07-26 10:59:42 6554

原创 [RK3399][Android7.1] 系统reboot mode机制小结

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83背景:到kernel 4.4上面,发现内核把重启参数通用驱动也实现了。 rk3288 android6.0 kernel3.10上rk是自己实现的。文档说明:针对通用reboot mode驱动,内核有文档解释:Generic reboot mode core m...

2018-07-25 20:45:08 3750

原创 [RK3399][Android7.1] 系统重启调用过程(PSCI)

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83系统重启调用和rk3288基本类似,只是rk3399平台对应的arm_pm_restart不同了。rk3288的可参考 [RK3288][Android6.0] 系统重启调用过程小结调用流程:KEYWORD(powerctl, COMMAND, 1, do_powerctl)...

2018-07-25 17:41:54 2935 5

原创 [RK3399][Android7.1] 调试笔记 --- 开机动画播放视频功能

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83rk3399上默认已经添加了开机播放视频的功能,只要按照如下改动就可成功播放。kris@eco:~/rk3399/device/rockchip/rk3399$ g dfdiff --git a/device.mk b/device.mkindex 2a730bc..6645072 ...

2018-07-24 18:18:14 5034 31

原创 [RK3399][Android7.1] 调试笔记 --- LOCAL_PROPRIETARY_MODULE作用

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83调试Audio HAL层发现在out/target/product/rk3399_mid/system/lib/hw 目录下没看到 audio.primary.rk30board.so, 而是放在了out/target/product/rk3399_mid/system/vendor/l...

2018-07-24 14:46:47 16516 3

原创 [RK3399][Android7.1] 调试笔记 --- 开机后台抓取kmsg log

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83此功能在rk3288上有实现过,rk3399上脚本稍微有点差异。记录文件生成时间,因为可能会遇到异常重启的情况,而文件的生成时间会随着Log的写入而更新。dmesg先保存前面的Log每次开机会启动一次脚本,默认保留5次开机Log,kmsg_5.log为最新改动如下: sys...

2018-07-24 14:40:57 2884

原创 [RK3399][Android7.1] 调试笔记 --- 设置里打开返回按键

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83原因: 在没有物理按键和导航栏的情况下没法退出设置界面,不过app里有自带此功能, 只是默认关闭的。方法:diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/...

2018-07-24 14:35:35 1970 12

原创 [RK3288][Android6.0] 调试笔记 --- 原生人脸检测功能无法使用

Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92说明:Google原生自带人脸检测功能,并且分两种。是通过传递Bitmap检测图中人脸,这里不做讨论。实时从Camera获取数据检测。至于这两种用法,可参考如下文章: Android 人脸检测 非人脸识别流程:第二种方法是在HAL层实现检测,start的流...

2018-07-19 14:18:08 1609 1

原创 [RK3399][Android7.1] 调试笔记 --- WiFi吞吐量测试

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83说明:WiFi芯片使用的是AP6356S测试是在普通环境,并没有在屏蔽房路由器WiFi最大速率1200Mbps2.4G WiFi LinkSpeed是130Mbps左右5G WiFi LinkSpeed是600Mbps左右PC测试环境是Windows10LinkSpe...

2018-07-19 10:49:34 5146 12

原创 [RK3399][Android7.1] 调试笔记 --- 2.4G WiFi吞吐量测试速率很低

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83说明:WiFi芯片使用的是AP6356S测试是在普通环境,并没有在屏蔽房中现象:测试2.4G的传输速率的时候,发现很低,如下图 上传速率: 下载速率: 原因:SDK中对应的WiFi driver有问题,需要更新。 版本可从Kernel l...

2018-07-19 09:14:37 3120 10

原创 [RK3399][Android7.1] 调试笔记 --- 设置搜狗为开机默认输入法

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83除了Android 6.0上的改动之外还需要修改如下部分:diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/...

2018-07-18 15:54:07 2784 4

serial port test sample

测试范例,用于测试SerialPort JNI。 接收部分已经确认正常,发送还未作验证。

2018-08-31

camera preview test sample

1.打开就预览 2. button用于控制是开启preview callback并保存为jpg

2018-06-01

face++人脸搜索API测试用例

返回的数据解析没有全部做好,Post部分经过测试都是可以的。

2018-05-25

okHttpClient test sample

之前此工程是用于测试webView的,所以工程名不是叫okHttpClient. Server之前文章已经有提到如何搭建了,见 [Windows上Apache服务器的下载和安装](https://blog.csdn.net/kris_fei/article/details/80229735) 流程是从apache server读取一个文件json文件,然后解析显示到屏幕上,源代码中还有http的测试例子。okHttp的测试分同步和异步两种。

2018-05-11

WebSocketServer test sample

利用okHttp中自带的mock web server在AndroidStudio测试WebSocketServer 注意: 1.只能在本机回环测试 2. 端口号每次都是随机变化,client端每次都需要更改端口号才可以使用。

2018-05-11

WebSocketClient test sample

利用okHttp中的WebSocket功能在AndroidStudio测试WebSocketClient, 其中Server是使用okHttp中的moc web server搭建的,所以在同一台机器上测试的(moc只能在本机上测试),如果没有搭server, 可以换成“ws://echo.websocket.org”测试。

2018-05-11

apktool_and_dex2jar(ubuntu)

版本号:v2.3.2 如果apktool和dex2jar太旧,可以直接去https://ibotpeaches.github.io/Apktool/install/下载。

2018-04-26

jd-gui(ubuntu)

反编译得到Jar文件之后,使用此工具直接可以查看源代码。 版本号: v0.3.1

2018-04-26

toolbox elf文件

toolbox elf文件

2016-03-18

ION基本概念.docx

ION是Google的下一代内存管理器,用来支持不同的内存分配机制,如CARVOUT(PMEM),物理连续内存(kmalloc), 虚拟地址连续但物理不连续内存(vmalloc), IOMMU等。

2013-06-29

new work queue in linux 2.3.36

个人对Linux新的work queue机制的分析,如有不对的地方请交流,谢谢!

2012-08-10

c语言编程要点.pdf

根据自己看了一些书和编程经验总结的,希望对刚入门的学习有帮助。

2011-05-11

空空如也

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

TA关注的人

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