- 博客(161)
- 资源 (7)
- 收藏
- 关注
原创 Android9.0 HAL 层开发
1. 生成 hidl-gen 工具source source ./build/envsetup.shlunch your_projectmake hidl-gen -j42. 编写接口文件编写 types.hal, IHello.hal, IHelloCallback.hal,Android.bp1. IHello.halpackage vendor.test.hardware.hello@1.0;import IHelloCallback;interface IHello
2021-12-28 13:27:41 4571
原创 Android虚拟AB升级流程简述及升级完整log
升级流程粗略分析(详细流程,请参考log对代码进行分析,另外该log未本地通过update_engine_client进行升级产生的): bool UpdateAttempterAndroid::ApplyPayload(const string& payload_url,int64_t payload_offset, int64_t payload_size,const vector<string>& key_value_pair_headers,brill...
2020-11-27 11:00:18 4798 4
原创 c++ std::map 使用注意事项
上面代码发现问题没有?问题就是 map 在取值前,要find 或者count不为0后才能取值。否则map 会给取得key,赋值默认得值。比如上面得 就会给 赋值默认的值 0;某项目代码报出个严重的bug,具体现象是某个 map 的变量,还没有添加元素,但是获取到数据。
2023-07-28 10:19:36 381
原创 gitlab 安装,libc.so.6: version `GLIBC_2.25‘ not found
gitlab 安装错误处理,glibc 编译错误处理
2022-09-19 18:10:45 21426 7
原创 C语言常用编程技巧-结构体数组
本文主要用来记录C语言常用编程技巧,完成一下目的:1、函数指针如何定义使用;2、结构体数组如何定义使用;3、callback 方法使用技巧;以下代码为在ubuntu 系统进行编译,文件名为 struct.cpp通过下面指令进行编译,生成可执行文件 structgcc struct.c -o struct通过终端执行 ./struct 即可执行程序#include <stdio.h>//定义方法,对应 cmd_handler_t.cbint add_h
2022-05-11 10:46:20 292
转载 Trust App(高通)
本文转载自简书,原文作者:后知晚觉,https://www.jianshu.com/p/17af7a8f7864CP代码编译方法交叉编译工具下载在高通网站上下载llvm,llvm编译器版本,可以在llvm.py脚本中通过print获取:vim /....../CP/TZ.XF.5.1/trustzone_images/tools/build/scons/scripts/llvm.py +189增加代码:print(os.environ.has_key('LLVMBIN'))我
2022-05-06 16:46:44 1718
转载 select、poll、epoll之间的区别
本文转载自:select、poll、epoll之间的区别(搜狗面试) - aspirant - 博客园侵删!谢谢!(1)select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll==>时间复杂度O(n)poll本质上和select没有区
2022-04-27 22:14:18 141
翻译 QNX PPS
1 QNX PPSqnx pps 官方链接:http://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.pps.developer/topic/about.htmlQNX持久发布/订阅(PPS)服务是一个小型的、可扩展的发布和订阅服务,它提供了跨重启的持久性。它旨在为嵌入式系统中的发布/订阅和持久性提供简单易用的解决方案,满足使用异步发布和通知构建松散连接系统的需求。使用PPS,发布是异步的:订阅者不必等待发布者。事实上,发行商和订
2022-04-27 14:28:26 3478
转载 git 使用相关总结
1. git push <remote 名字> <本地分支的名字> : <远程库的名字>git push origin HEAD:refs/for/mastergit push 肯定是推送origin : 是远程的库的名字HEAD: 是一个特别的指针,它是一个指向你正在工作的本地分支的指针,可以把它当做本地分支的别名,git这样就可以知道你工作在哪个分支。refs/for :意义在于我们提交代码到服务器之后是需要经过code review 之后才能进行m
2022-04-27 11:14:35 104
转载 智能座舱的影分身术:Hypervisor(一)
本文转自:智能座舱的影分身术:Hypervisor(一) | 人人都是产品经理 侵删!谢谢!本文主要分析了Hypervisor的主要概念、可靠程度以及在智能座舱中的应用。第一次接触Hypervisor大约是2003年左右,在Linux上通过VMware运行Windows;2007年在联想花了一个月研究Xen/KVM在服务端的应用,再往后几年放弃了Linux桌面。离开了研发团队就再也没有了同时运行多个系统的需求,虚拟化技术被抛到脑后,看到Hypervisor在终端设备上的应用,我第一反应.
2022-04-26 16:53:58 1043
转载 智能座舱的影分身术:Hypervisor(二)
本文分析了汽车电子需要的Hypervisor、Hypervisor方案的技术反思、Hypervisor技术使用的必要性以及Hypervisor对SoC的选择的影响。接着智能座舱的影分身术:Hypervisor(一)的概念讲解,我们说明一下实际Hypervisor的进一步思考。一、汽车电子需要什么样的Hypervisor1. 安全要求虚拟机系统设计需要达到ASIL B的安全等级。 硬件的系统隔离和安全系统。 安全模式启动服务质量保证的高优先级任务性能水平。2. 功能要求.
2022-04-26 16:51:14 1176
原创 go-simplejson timeout 解决
在进行 go 代码调试时用到 go-simplejson,但编译时提示这个模块超时,用下面命令进行安装也提示超时:go get -u -v github.com/bitly/go-simplejson超时错误:"go get: module github.com/bitly/go-simplejson: Get "https://proxy.golang.org/github.com/bitly/go-simplejson/@v/list": dial tcp 172.217.27.49:443:
2022-04-24 14:58:04 375
原创 Android OTA 问题分析
分享下 Android OTA 问题分析思路,针对不同类型的问题进行分析。一、 升级过程,校验失败;升级校验失败是开发过程中常见的问题,校验失败实际是针对版本拿升级包进行打 patch,目前 Android 基本都是 block 升级,所以校验失败也就是某些 block 校验不过。1. 首先排查,设备刷的版本和升级包对应的版本是否匹配;这种情况一般比较少见,但是应当首先予以排除。查看设备的版本号,编译时间辍,和升级包里面的是否一致。这种情况包括两种:1)升级包正确,但是设备刷错了版本
2022-02-11 10:24:53 3437 2
原创 Android 9.0 CarService 分析
一. CarService 启动流程:1. 启动流程图2. SystemServer -> CarServiceHelperService -> CarService最终在CarServiceHelperService 中通过bindServiceAsUser 启动 CarServiceframeworks/base/services/java/com/android/server/SystemServer.javapublic final class Syste...
2022-02-09 14:45:52 7470 3
原创 Android Input 流程分析
1. addView 流程addView()一般用来动态添加View,LinearLayout、RelativeLayout 添加子控件都可以用addView()frameworks/base/core/java/android/view/ViewManager.javapublic interface ViewManager{ public void addView(View view, ViewGroup.LayoutParams params); public void updat
2022-01-20 13:48:09 3040
转载 Android Input 流程分析及事件分发机制
在看Android Input 流程及事件分发机制时,看到几篇写的比较好的博客,先记录下链接。基本把这几篇博客看懂,整个流程就比较清楚了。感谢之前作者的博客。Android Input(一)-相关模块初始化Android Input(二)-输入子系统Android Input(三)-InputReader获取事件Android Input(四) -InputDispatcher分发事件Android Input(五)-InputChannel通信Android Input(六).
2022-01-18 17:51:46 1855 1
转载 C++强制类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast
【本文转载自】【C++强制类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast - SpartacusIn21 - 博客园】侵权请告知删除,谢谢!1. c强制转换与c++强制转换c语言强制类型转换主要用于基础的数据类型间的转换,语法为:(type-id)expression//转换格式1type-id(expression)//转换格式2c++除了能使用c语言的强制类型转换外,还新增了四种强制类型转换:static_cast
2022-01-13 16:33:48 470
原创 Android Binder 初步分析之一
前言:在看Android Binder 代码分析 addService() 时,看到 remote()->transact(),网上博客讲最终到了 BpBinder中,即 BpRefBase 中的mRemote 指针 指向了 BpBinder。那 BpRefBase mRemote 指针究竟如何指向 BpBinder ?本文将进行错略分析。Service 注册流程以 MediaPlayerService 为例分析frameworks/av/media/mediaserver/ma
2022-01-11 14:37:01 2678
转载 WatchDog工作原理
一、概述Android系统中,有硬件WatchDog用于定时检测关键硬件是否正常工作,类似地,在framework层有一个软件WatchDog用于定期检测关键系统服务是否发生死锁事件。WatchDog功能主要是分析系统核心服务和重要线程是否处于Blocked状态。监视reboot广播; 监视mMonitors关键系统服务是否死锁。二、WatchDog初始化2.1 startOtherServices[-> SystemServer.java]private void star
2022-01-07 15:14:04 3030
转载 Watchdog机制以及问题分析
本文转自:Watchdog机制以及问题分析, 如有侵权,请告知删除。目录1. 概览 2. Watchdog机制 2.1 Watchdog的初始化 2.2 添加Watchdog监测对象 2.3 Watchdog的监测机制 3. 问题分析方法 3.1 日志获取 3.2 问题定位 3.3 场景还原 4. 实例分析 5. 总结1. 概览Watchdog的中文的“看门狗”,有保护的意思。最早引入Watchdog是在单片机系统中,由于单片机的工作环境容易受到外界磁..
2022-01-05 16:13:49 3769
原创 C/C++ 打印日志到文件
1. C/C++ 打印日志到文件示例代码// LogPrint.cpp#include <stdio.h>#include <unistd.h>#include <stdarg.h>#include <string.h>#include <fcntl.h>#include <time.h>#define MAX_LEN 1024#define LOG_FILE "./Test.log"FILE *fd_log
2021-12-09 14:18:49 4528
原创 Android SocketListener、FrameworkListener 分析
1. xxx.rc 中使用 /dev/socket/xxxlogd.rc 中 有 "socket logd stream 0666 logd logd" 以及 "socket logdr seqpacket 0666 logd logd"这样的写法,实际会将logd 服务 与"/dev/socket/logd" "dev/socket/logdr" socket节点进行绑定/system/core/logd/logd.rcservice logd /system/bin/logd ..
2021-11-26 15:58:16 4583
原创 init execute_no_trans avc报错
目前要在开机启动一个服务,但是通过log分析bin启动异常,分析如下:1. 要新建对应的te文件,比如containerd.tetype containerd, coredomain, domain;type containerd_exec, system_file_type, exec_type, file_type;init_daemon_domain(containerd)2. 在需要权限的地方添加权限,比如在init.te中添加对应权限allow init containerd
2021-05-13 16:55:47 2730 1
AUTOSAR_SWS_SOMEIPTransportProtocol.pdf
2022-10-07
AUTOSAR_PRS_SOMEIPServiceDiscoveryProtocol.pdf
2022-10-07
SELinux_Treble.pdf (Android8.0 sepolicy权限新特性)
2018-02-05
消费机测试及例子程序 代码
2013-04-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人