自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rainman博的专栏

长风破浪会有时,直挂云帆济沧海

  • 博客(25)
  • 资源 (4)
  • 收藏
  • 关注

原创 Android移除预制应用方法

最后在main.mk中可以看到,大概意思是product_MODULES的值,会剔除那些PACKAGES.$(p).OVERRIDES 标注的模块,而PACKAGES.$(p).OVERRIDES这个值,根据上面一步步看,就是。如果预置的APK,要覆盖原生apk,则需在android.mk中的添加LOCAL_OVERRIDES_PACKAGES,此变量可以使其他的模块不加入编译。3. 找到项目的mk文件,找到 PRODUCT_PACKAGES,注释掉目标模块。1. 注释掉对应模块 .mk文件中的内容。

2024-07-17 15:41:19 260

原创 selinux解决sysfs neverallow问题

执行 restorcon -R /devices/platform/aaa/bbb/ccc 来重新加载selinux上下文,发现已经变成。system/etc/selinux下的所以文件push到设备相应目录下, 具体看修改的selinux编译在哪里。将vendor/etc/selinux下的所以文件push到设备相应目录下,或者将。在aosp源码/system/policy/下grep system_app就会发发现。system app需要访问/sys下设备节点信息。my_sysfs了。

2024-07-05 18:41:42 142

原创 android系统源码中给apk签名

或者直接在android源码编译环境执行。

2024-07-03 13:41:24 102 2

原创 Android Selinux 自定义Java系统服务

com.test.myservice本来就是system app,其实完全可以添加下面一句就完事儿:但是如果这么做的话,就相当与允许了所有system_app来向系统注册test_server了,显然这样做是不合理的。因此需要为com.test.myservice定义一个自己的selinux app上下文# 说明:# user=system seinfo=platform 表示是系统应用,并有签名# name: 应用包名# domain:我们自己起的域名。

2024-06-27 20:00:05 126

原创 android c++ 打印堆栈

2. 追加头文件#include <utils/CallStack.h>shared_libs中追加libutilscallstack。

2024-06-24 19:26:14 214

原创 Android12 Activity启动流程概要

Activity # startActivity Activity # startActivityForResult Instrumentation # execStartActivity ActivityTaskManagerService # startActivity ActivityTaskManagerService # startActivityAsUser ActivityStarter # execute ActivityStarter # executeRequest

2023-10-26 19:26:47 146

原创 android认识窗口

这里我按照自己的理解画了一下Android架构图,主要是对看下Framework这块:顶层是基于ApplicationFramework层的Apps层,ApplicationFramework是运行在App进程的Framework代码,如四大组件,各种Manager。在这一层,屏幕上的一块显示区域,典型代表是Activity,但是Activity毕竟是一个综合性比较强的概念,具体到内容显示这块还是由Window类负责,Window则是容纳View对象的容器。

2023-10-15 10:53:51 409

原创 Android12 artifact_path_requirements.mk编译报错

网上的解决方案:build/envsetup.sh 加上export DISABLE_ARTIFACT_PATH_REQUIREMENTS="true"就可以顺利编译通过不再报artifact_path_requirements错误,这里其实就相当于把新版本编译系统中artifact_path_requirements检测关闭。我没有尝试这种方法。原因是如果程序要要编译到system/下面要做白名单的声明。如果没有声明,那就会报这个错。

2023-09-24 11:31:49 476

原创 Android studio导入Android源码

这些项是引用的源码中编译出来的jar包,如果保留,在浏览过程中查看类型跳转到这些jar中的class文件,而不是源码java文件。说明:这些设置也可以在Android studio:project structure - project settings - modules - dependencies中修改,速度比较慢,不如直接编辑.iml文件方便。1)增加excludeFolder列表,排除不需要的源码路径,这样可以加快导入和创建文件索引的速度。加载完成后,可以完整的浏览、编辑代码了。

2023-07-21 09:15:51 348

原创 Intent传递对象的三种方法

方法虽然十分简单,但是效率却不容乐观,因为它会把整个对象序列化,开销十分大,为了追求效率,我们不得不使用另一种方法,也就是。方法多了太多的实现代码了,有没有什么办法能改变这一现状呢?方法中,我们可以将我们想要的数据写入容器,如果是我们不需要的数据,那么我们可以放弃写入,这也是。容器中的数据读出来,用读出来的数据实例化一个对象,并且返回。接口的实现,这个接口中也需要我们实现两个方法。除了这两个方法以外,我们还需要创建一个。的数组并且返回,一般而言,直接返回。方法传递这个自定义对象了,在。,否则是无法使用的。

2023-07-20 19:30:41 691

原创 AOSP源码下载、编译、实机运行

下载下载地址:​ Index of /aosp-monthly/ (ustc.edu.cn)解压:​ tar xf aosp-latest.tar # 解压得到的 AOSP 工程目录。下载 repo 工具mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo## 如果上述 URL 不可访问,可以用下面的:## curl -sSL 'htt

2022-05-23 20:51:45 604

转载 Qt layout布局

开发一个图形界面应用程序,界面的布局影响到界面的美观。在设计一个界面之前,应该考虑到开发的界面可能给不用的用户使用,而用户的屏幕大小、纵横比例、分辨率可能不同,界面还可能是可缩放的,程序应该可以适应这些变化。        前面的程序中都是使用setGeometry()方法定位控件的位置,这个方法比较笨拙。试想如果控件很多,布局这些控件需要编写大量的代码。幸运的是,QT提供了更好的方法布局控件

2015-12-15 11:38:10 365

转载 git-svn — 让git和svn协同工作

svn作为一个优秀源码版本的管理工具,可以适合绝大多数项目。但是因为它的采用中心化管理,不可避免的存在本地代码的备份和版本管理问题。也就是说对于尚未或暂无法提交到Subversion服务器的本地代码来说,存在着被误删除和版本更新无法回退两大情形。git作为一个分布式版本管理工具,可以很好的解决这个问题。因为它的大多数操作是在本地进行的。这里要说的是git是如何做到既可以管理好本地代码又可以

2015-04-15 14:47:01 329

转载 解决TCP网络传输“粘包”问题(经典)

当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高可靠性服务。UDP(user datagram protocol,用户数据报协议)是无连接的,提供高效率服务。在实际工程应用中,对可靠性和效率的

2014-09-05 15:52:45 306

转载 tcp粘包分析

这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一 .两个简单概念长连接与短连接:1.长连接     Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接     Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此

2014-09-05 15:14:47 285

转载 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)

1、安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件。这些使用apt-get安装即可:lingd@ubuntu:~/arm$sudo apt-get install vim vim-scripts vim-doc其中vim-scripts是vim的一些基本插件,包括语法高亮的支持、缩进等等。vim中文帮助文档tar包下载地址:http://sourceforge.net/pr

2014-09-03 21:57:32 406

转载 fscanf()函数详解

功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。用 法:int fscanf(FILE *stream, char *format,[argument...]);int fscanf(文件指针,格式字符串,输入列表);  for example:  FILE*fp;  chara[10];  intb;  doublec;  

2014-09-03 11:44:15 1544

转载 usb-OTG-ADP-HNP-SRP

1. USB速率这得从USB的发展过程说起。 USB 1.0:最早的USB标准,有187.5Kbps和1.5Mbps两种传输速率,最高传输速率1.5Mbps USB 1.1:传输速率为USB 1.0标准的8倍,有1.5Mbps和12Mbps两种传输速率,最高速率12Mbps USB 2.0:较新的USB标准,最高传输速率为480Mbps USB 3.0:据说是最新的USB标准,

2014-08-14 10:50:10 470

转载 USB OTG

1 USB OTG的工作原理OTG补充规范对USB 2.0的最重要的扩展是其更具节能性的电源管理和允许设备以主机和外设两种形式工作。OTG有两种设备类型:两用OTG设备(Dualrole device)和外设式OTG设备(Peripheralonly OTG device) 。两用OTG设备完全符合USB 2.0规范,同时,他还要提供有限的主机能力和一个MiniAB插座、支持主机流通协议(Ho

2014-08-14 10:38:11 429

转载 urb分析,usb_fill_bulk_urb函数理解

usb request block,简称urb。事实上,可以打一个这样的比喻,usb总线就像一条高速公路,货物、人流之类的可以看成是系统与设备交互的数据,而urb就可以看成是汽车。在一开始对USB规范细节的介绍,我们就说过USB的endpoint有4种不同类型,也就是说能在这条高速公路上流动的数据就有四种。但是这对汽车是没有要求的,所以urb可以运载四种数据,不过你要先告诉司机你要运什么,目的地是

2014-07-09 19:23:24 561

转载 根据内核Oops 定位代码

内核开发时有时候出现Oops,例如一个野指针会导致内核崩溃,如运行时出现以下log:现在有三种方法可以找出具体出现野指针的地方   5.438972] bells bells:  wm5102-aif1  samsung-i2s.0 mapping ok  [    5.443812] bells bells: Failed to add route OPCLK->Sub CLK_SY

2014-07-07 19:12:20 395

转载 USB编程知识 总结

USB编程知识 总结最近在做usb camera的工作,在网上找到这篇文章,整理了下。慢慢加入我自己的理解。USB编程知识 一 查找USB设备USB编程的第一个步骤就是寻找你插入的USB设备.为了找到你的USB设备,首先要知道你的USB设备的GUID.一种类型的USB设备的GUID是这个类型唯一的。使用下列的几个函数变可以找到你的USB的设备名字:    Setup

2014-06-27 17:05:46 1902

转载 USB枚举详细过程剖析

1)集线器检测新设备主机集线器监视着每个端口的信号电压,当有新设备接入时便可觉察。(集线器端口的两根信号线的每一根都有15kΩ的下拉电阻,而每一个设备在D+都有一个1.5kΩ的上拉电阻。当用USB线将PC和设备接通后,设备的上拉电阻使信号线的电位升高,因此被主机集线器检测到。)(2)主机知道了新设备连接后每个集线器用中断传输来报告在集线器上的事件。当主机知道了这个事件,它给集线器发送一

2014-06-25 17:21:50 583

转载 UNIX Domain Socket IPC (sockaddr_un )

socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另

2014-06-25 17:20:38 277

转载 SIGCHLD信号与SIG_IGN处理的使用

守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。 比如,作业规划进程crond,打印进程lpd等。守护进程的编程本身并不复杂,复杂的是各种版本的U

2014-06-25 17:18:33 402

training-linear-layout

training-linear-layout

2021-12-09

developer-android

developer-android

2021-12-01

LINUX那些事儿之USB

LINUX那些事儿之USB,

2014-09-03

USB设备请求和描述符整理

USB设备请求和描述符整理

2014-06-25

空空如也

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

TA关注的人

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