- 博客(33)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 android 新增native binder service 方式(三)
书接上回,继续第三种方式,是手动生成 service binder 的方法,项目结构。
2025-02-25 20:16:42
969
原创 android 新增native binder service 方式(二)
接上篇文章,实现binder service 的第二种方式,这种在系统里面比较常见先看下整体目录结构,整体差别不大。
2025-02-25 18:39:39
1085
原创 android 新增native binder service 方式(一)
先看下整体的目录结构libserviceaidl 就是我定义的aidi接口通过Android.bp 编译成soaidl: {],},srcs: [],"libbase","liblog","libgui",],cflags: ["-Werror","-Wall","-Wextra",],srcs: [],会生成libserviceaidl.so ,需要push 到我们系统对应目录,这样调用的binder 库就定义好了。
2025-02-25 16:42:29
1273
原创 Android hid 数据传输(device 端 )
最近一直在处理hid 数据需求,简而言之就是两台设备直接可以通过usb 线互相传递数据。
2024-12-05 15:15:00
1633
原创 Android 系统增加ro property
那我参考上面方式,直接ro.boot.revision 这个可以吗,发现也不行,vendor 修改selinux 不通过。qssi 修改,直接不生效,莫名其妙。我用上面两种方式方式修改,发现是不生效的,为什么呢,代码里面会把ro.boot.revision赋值给ro.revision.新增自己的参考系统的device/qcom/xxxx/xxxx.mk。device/qcom/xxxx/Boardconfig 中,加一个行。build/tools/buildinfo.sh 里面很多可以参考。
2024-09-26 11:08:00
731
原创 Android JNI 调用流程
为啥要用JNI,我个人理解是,Java 代码效率不够高,代码调用底层逻辑隔着一层Java 虚拟机,不能直接操控底层硬件,而C/C++ 可以直接操控硬件设备,对于需要效率更高的操作,就需要通过C/C++ 完成。。比如说我们公司做的一个项目,VR眼镜,连接主机设备,VR需要上报数据给主机,并且显示出来。眼镜转动很快,,如果数据获取慢,那主机显示很延时很久,所以这里java 就不合适了。
2024-09-24 17:51:38
1677
原创 android文件存储路径问题
这是因为google 缩小了权限范围,打开setting 我们发现权限确实变小了很多,选择第一个,Allow managment of all files ,就不会有上面问题.大概意思就是android 11 以后这么用就不好使了,目标文件,只能存储到相应的文件夹下,picture,music....等,之前有遇到过apk 文件存储报错,当时解决了,后面开发新项目又遇到老错误,只怪自己没有记录.我们开发app 的时候,有时候会遇到需要缓存到本地问题,
2023-12-22 14:08:33
2711
原创 android mk 和 bp 引入三方jar ,aar
网上有很多关于这方面的介绍,我这边直接上完整的文件,供参考,想用的,直接修改模块名字,就可以使用了,避免踩坑.。
2023-12-12 10:40:25
1846
原创 Android OTA 升级入门篇
第一次接手FOTA ,记录下app 端的实现过程,和一些基本概念,不对的地方,还望指正.Android FOTA 广义是Android 实现设备系统无线升级的全部过程和手段。如果一个设备无线升级的系统是完备的话,则一个FOTA过程主要包含以下工作:1. 制作FOTA升级包:升级包一种可供设备实现系统更新升级的一个压缩包文件,解压缩后本质是各种img文件、被执行文件和一些配置信息等。Android升级时会有对应的程序解析这个文件。
2023-11-17 15:33:34
4252
2
原创 Android SystemService 调用流程
最近在整理Usb 的默认MTP模式方案整理,涉及到app ->system server-> hal 流程,因为他们属于不同的进程,中间涉及到跨进程的调用,既然后面要写USB 流程,那么就用adb 的例子看看实际的调用流程.。
2023-04-27 13:37:37
544
原创 android Jetpack应用实战(四)-Room
对于Android 开发人员来说,其实对数据库操作是很不熟练的,要写一堆Sql,很是麻烦,于是出现了很多开源的库方便我们操作,为此google 官方提出了Room 的库,解决sqlite 封装问题,毕竟是google 的,后期肯定会持续维护的.。我这边因为实例话两张表,所以有两个表操作.这里面需要注意的是调用myRoomDataBase.runInTransaction() 保证同一事务完成操作,即要么都成功,要么都失败.。有表格了,肯定要有表格的一系列操作增删查改,这就是Dao 的意义。
2023-04-13 21:03:57
314
原创 android Jetpack应用实战(三)-DataBinding
ActivityTestViewModel2Binding 这个名字和布局文件的名字有关,就是布局文件名字的大写+Binding,,,下图所示,一目了然.。很多人第一次配置 标签后,发现app 就运行不起来了,是因为studio 版本和gradle 的配置太低了,对比发现,Activity 工作少了好多,,,我觉得这个用处不大,而且 感觉有点坑,有问题,调试都不方便.....。感觉越来越臃肿,,都不想学习这个了,不过既然有就记录下吧,,就当成存在即合理吧。为了看着方便,我们只看差异部分。
2023-04-11 09:45:59
150
原创 android Jetpack应用实战(二)-ViewModel
我们使用ViewModel 的时候难免会需要一些context 对象,当然我们也可以通过参数的方式传递当前的context,但是这样可能会导致内存泄露,于是为了解决这个问题,google 为我们提供了AndroidViewModel.通过点击发现页面文本没有任何改变....然后我把model 对象打印出来,发现两个Frament 中压根不是一个对象,如何保证和Activity 中同样的对象呢.。可以看到接收的是Application 作为context,应用的生命周期一致,解决内存泄露的问题。
2023-04-08 15:45:25
201
原创 Launch app位置修改
最近公司要求定制首页图标位置,做一次归纳总结挑重点说,先说修改位置Gms版本位置修改/vendor/partner_gms/apps/GmsSampleIntegration/res_dhs_full/xml/partner_default_layout.xml非Gms修改packages/apps/Launcher3/res/xml/default_workspace_5x5.xml参数首页最底下的快捷方式<favorite 快捷方式.......
2022-04-29 10:53:32
1253
2
原创 android adb打开授权调试
Setting 打开adb从上层现象看,打开adb 后显示的对话框对应系统的UI UsbDebuggingActivity.java/*** Notifies the ADB service as to whether the current ADB request should be allowed, and if* subsequent requests from this key should be allowed without user consent...
2021-09-07 13:53:27
1441
原创 Recycleview Holder getTag 会保留之前数据
之前在项目项目中,使用RecycleView 中holder的Tag 标签的方法,发现每次每次刷新会保存之前的数据,造成一些没必要的bug ,在此记录下/** * 自定义Holder */class EventViewHolder extends RecyclerView.ViewHolder { ImageView icon; public EventViewHolder(View itemView) { super(itemView); ic
2021-07-30 09:40:39
319
转载 Android 防止重复点击
在网上看到别人写的博客,自己做了笔记,记录下给自己看。public void onClick(View v){ if(isWindowsLocked()){ return; }}public boolean isWindowsLocked(){ long current = SystemClock.elapsedRealTime(); ...
2018-03-20 16:36:41
237
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人