Android系统开发
文章平均质量分 75
主要记录Android系统方面的开发
零意@
RK3288_Android7.1驱动开发入门视频课程链接:https://edu.csdn.net/course/detail/27756带你快速入门Android/Linux驱动开发,熟悉开发流程,让驱动开发入门门槛更低!
Linux设备树dts快速入门视频教程:https://edu.csdn.net/course/play/27772
展开
-
安卓设备fastboot刷机
在安卓设备中,Fastboot是一种比Recovery更底层的刷机模式,是使用USB数据线连接手机的一种刷机模式。这就是所谓的线刷,与Recovery模式相比Fastboot需要掌握一些刷机命令。fastboot命令操作:1、要让安卓设备进入fastboot环境。有2种方法:执行命令 adb reboot fastboot或者同时按住音量加键和电源键开机。2、首先你的电脑要有对应的工具adb.exe和fastboot.exe工具,可以到网上下载一个来用,然后才能在命令行cmd执行对应fastb原创 2021-06-03 10:22:33 · 5355 阅读 · 6 评论 -
rk3399_android7.1使用v4l2loopback实现虚拟camera开发记录
1、编译v4l2回环设备驱动camera驱动,生成video0设备;drivers/v4l2loopback/v4l2loopback.cdrivers/v4l2loopback/v4l2loopback_formats.hdrivers/v4l2loopback/v4l2loopback.hdrivers/v4l2loopback/Makefile2、使用yuv420_infiniteloop.c编译出来的应用程序(这里可以放到安卓的代码下mmm编译)实现数据写入video0设备中,这里写入的数原创 2021-05-15 15:53:28 · 3032 阅读 · 1 评论 -
Android wm指令的用法笔记
wm size 1920x1080 把分辨率设置为1080Pwm density 320 设置densityDpi为320wm size reset 恢复分辨率wm density reset 恢复densityDpidumpsys window displays 查看设置如果上面命令不能使用,可用下面命令试试am display-size 1080x1920 把分辨率设置为1080Pam display-density 320 设置densityDpi为320...原创 2020-07-23 11:03:39 · 724 阅读 · 0 评论 -
rk3288_Android7.1长按recovery按键5s之后恢复出厂设置
实现长按recovery按键5s之后恢复出厂设置,清除数据kernel部分添加GPIO按键:+++ b/arch/arm/boot/dts/rk3288-evb-android-rk808-hdmi.dts@@ -167,7 +167,7 @@ #size-cells = <0>; pinctrl-names = "default";- pinctrl-0 = <&pwr_key&原创 2020-11-02 09:39:03 · 2433 阅读 · 0 评论 -
Android调试过程抓取带时间的logcat和kernel log打印
可以直接在串口输入以下命令实现:logcat -v time -f /data/logcat.log | cat /proc/kmsg | tee /data/kernel_dmesg.log说明:logcat打印输出到data目录的logcat.log文件,dmesg打印,也就是kernel内核的打印会在data目录的kernel_dmesg.log文件中。logcat 输出日志信息到文件中– "-f"选项 : 该选项后面跟着输入日志的文件, 使用adb logcat -f /sdcard/log原创 2020-05-16 14:46:10 · 6411 阅读 · 0 评论 -
Android7.1添加开机启动服务程序关于Selinux权限问题说明
当需要添加一个binder服务xxx程序,并且设置成开机自启动时,需要按照如下步骤操作:第一步,我们可以在init.rc中添加了如下代码行:service xxxx /system/bin/xxxxclass mainuser rootgroup rootoneshot编译img后烧到机器,发现服务xxx无法启动,kernel log中有如下提示(这里新加的服务程序是eGTouch...原创 2019-12-26 18:00:47 · 3980 阅读 · 1 评论 -
Android7.1编译SDK报错解决方法总结
问题点:ninja: error: ‘out/target/common/obj/APPS/ActSensorCalib_intermediates/with-local/classes.dex’, needed by ‘out/target/common/obj/APPS/ActSensorCalib_intermediates/classes.dex’,missing and no kno...原创 2019-08-17 21:21:06 · 3141 阅读 · 0 评论 -
Android开发过程为C文件或者C++文件配置打印Logcat信息
1、修改Android.mk文件。在这个配置文件中我们加入如下一行代码:(注意:这行代码一定要加载include $(BUILD_SHARED_LIBRARY)之前。)LOCAL_LDLIBS += -llog例如:Android.mk文件文件的配置如下:LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE ...原创 2019-07-14 01:08:42 · 482 阅读 · 0 评论 -
rk3399_android7.1调试USB蓝牙模块小结
背景:BT chip:RTL8761平台:RK3399KERNEL版本:kernel4.4Android版本:android7.1蓝牙框架结构Android4.2 之后采用 bluedroid 作为协议;整体由 bluetooth.apk,bluedroid ,libbt-vendor 三个 部 分 组 成 ; bluetooth.apk 作 为 蓝 牙 服 务 进 程 , 通 过 l...原创 2019-11-21 22:07:33 · 6166 阅读 · 4 评论 -
Android系统中属性值的设置和使用
每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。属性变更的请求时init事件循环处理的另一个事件,在Android平台中,为了让运行中的所有进程共享系统运行时所需要的各种设置值,系统开辟了属性存储区域,并提供了访问该区域的API。属性由键(key)与值(valu...原创 2019-10-22 11:40:55 · 4761 阅读 · 1 评论 -
Android编译判定BoardConfig.mk的宏控是否打开或者有效的验证方法
在宏属性设置的地方添加这条打印,可以在编译的时候看到打印该宏的属性:这里拿BOARD_CONNECTIVITY_VENDOR来举例: $(warning BoardConfig : BOARD_CONNECTIVITY_VENDOR[$(BOARD_CONNECTIVITY_VENDOR)] )添加格式如下:+++ b/BoardConfig.mk@@ -17,7 +17,9 @@#...原创 2019-10-19 09:32:49 · 1976 阅读 · 0 评论 -
Android开发BroadcastReceiver广播的使用
Broadcast 广播简介按照广播类型分为两种,一种是全局广播,另外一种是本地广播全局广播:就是发出的广播可以被其他任意的应用程序接收,或者可以接收来自其他任意应用程序的广播。本地广播:是只能在应用程序的内部进行传递的广播,广播接收器也只能接收内部的广播,不能接受其他应用程序的广播按照广播机制也可以分为两种,标准广播和有序广播无序广播:所有的接收者都会接收事件,不可以被拦截,不可以被修...原创 2019-08-11 02:21:16 · 409 阅读 · 0 评论 -
mm和mmm编译说明
Android源码目录下的build/envsetup.sh文件,描述编译的命令m: Makes from the top of the tree.mm: Builds all of the modules in the current directory.mmm: Builds all of the modules in the supplied directories.要想使用这些命令...原创 2019-04-24 09:31:26 · 11570 阅读 · 0 评论 -
ubuntu14.04 64bit安装android的NDK开发环境
1、通过wget工具下载bin包:打开终端输入以下命令:$ wget -c http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin因为下载下来的是bin包,所以可以直接移动到需要安装的目录下面。将Android NDK bin包移动到你想要的目录下,如/opt/ndk/2、然后$ chmod a+x a...原创 2019-03-06 20:37:59 · 327 阅读 · 0 评论 -
Android8.1系统Led的控制从底层到上层的实现
玩了安卓这么久了,你是否有好奇,它的底层到上层或者上层到底层的标准流程是怎么走的呢?这里通过apk操作一个GPIO控制led的亮灭从而实现从上层到底层的完整调用流程。写得不足之处欢迎有识之士不吝赐教,在此先行谢过,技术无边,欢迎各位大牛来此多多交流。Android Version:v8.0.1Linux Version:V4.4Hardware:mtk67391、在kernel层,编写和添...原创 2019-03-06 02:52:37 · 4034 阅读 · 3 评论 -
Android底层到上层的开发流程
安卓系统整体框架图如下:简单总结如下:1、在kernel层编写你的驱动,生成设备文件节点跟上一层传输数据,主要调用函数copy_to_user和copy_from_user,注意节点权限问题。2、在HAL层封装对上提供的函数接口:通过节点文件与kernel层传输数据,编译生成动态链接库.so库文件,上层通过硬件模块ID来加载指定的硬件抽象层模块并打开硬件。3、framework层编写JN...原创 2019-01-24 11:33:35 · 3128 阅读 · 0 评论