学习书籍:Android底层开发实践 使用代码:AOSP源码 带@的行表示关键点;橙色背景的文字表示:整编log分析的关键字绿色“待补充”文字表示:有待补充内容-----第三章 Android系统开发环境搭建3.1 Android上的开发工作3.1.1 Android的移植开发1. Linux驱动 @p4
转载
2023-07-03 17:55:46
183阅读
Android 内核具有和标准 Linux 内核一样的功能,主要实现了内存管理、进程调度、进程间通信等功能。但在文件系统、进程间通信、内存管理等方面存在差异。1、文件系统。移动设备采用的大多不是硬盘而是 Flash 作为存储介质,因此,Android 内核中增加了标准 Linux 专用于 Flash 的文件系统 YAFFS2(Yet Another Flash File System 2)。YAF
转载
2023-06-26 11:37:40
35阅读
1. LCD裸机驱动小熊派开发板使用的LCD屏幕为1.3寸的TFT彩屏,色彩深度16bit,分辨率240*240,使用 SPI 接口与 MCU 之间通信。2. 移植LCD裸机驱动到LiteOS复制裸机驱动文件到LiteOS工程LCD的底层是使用SPI驱动的,那么除了 STM32CubeMX 生成的spi.h和spi.c文件,还需要自己在此基础上手写LCD屏幕的驱动文件。在复制文件的时候,按照上一篇
转载
2024-09-09 17:49:32
118阅读
加载底层库ScreenCap.java:public class ScreenCap { static { System.loadLibrary("scrcap"); }
转载
2013-07-30 18:10:00
133阅读
2评论
一、Python的一些特点通俗易学相比c语言晦涩难懂[至今仍搞不懂,为什么各大高校纷纷使用c语言作为计算机相关专业的入门语言,no comment],python更为的接近人类的语言。就这么说吧,如果你的英语不错,那么基本的python代码你都能够看懂。胶水语言个人觉得这可能是python近年来兴起的最为重要的原因了。python底层是c来编写的,能够很方便的调用c或者是c plus的库。所以有非
转载
2024-10-04 09:11:22
26阅读
触摸屏作为一“种新颗的且。直接的输入操作方式已经在全球流行。Android系统的移动设备(智能手机、平板电脑等)由于输入操作的需要,均选用一块全触屏作为其主要输入方式,而为了实现多点触摸,几乎都使用了电容式触摸屏。触摸屏的实现对屏功能的扩展十分有利,应用范围因此大大扩展。更大的屏幕尺寸对触摸屏开辟了更广阔的市场空间,同时也提出了更高的要求。如何保证触摸屏系统的稳定性,如何提高系统的整体性能,如何增
转载
2023-09-07 09:07:55
0阅读
最近公司项目有个新要求,需要APP常驻后台,并能在用户唤醒屏幕(未解锁状态下)监听此操作,并实现APP中的自动开门功能。整理一下自己的思路做法,希望帮到有需要的朋友。首先我们要用到 <notify.h>,这个头文件里面提供了用于进程之间的无状态通知方法。用法和我们通知使用差不多。其次为了满足常驻后台功能,这里用实现 AVFoundation后台播放。这里为了防止亮屏方法被多次调用,后来
转载
2024-06-03 16:37:19
232阅读
校色对于摄影爱好者以及从事设计制图的专业人士而言,为了更好的处理作品,因此需要一个色彩饱和度和精准度都非常优秀的显示器。不过这些专业用户有时会外出拜访客户或者将自己的作品与同行们互相交流,这时肯定不会将显示器随身鞋带,因此他们需要一个便携式的大屏幕设备,早期笔记本电脑一直扮演着这样的角色,而如今随着平板电脑的普及,它们相对于笔记本电脑拥有更轻巧的机身、更长的使用寿命以及更便捷的操作能力,开始逐渐取
转载
2023-08-31 20:50:46
185阅读
关机shutdown -h now(+5)poweroffinit 0halt重启shuedown -r now(+5)rebootinit 6 shell连接linux改的是eth0 lo不能动 查看ipwindows ipconfiglinux ifconfig配置ipifconfig eth0 172.16.22.55 (netmask 255.255.0.0) 
本文基于Android 12介绍Linux Kernel层和init进程的启动过程。一、Android启动过程概述Android正常模式启动过程如下图所示:启动电源:当按下电源键时,引用芯片从预定义的地方开始执行,加载引导程序BootLoader到RAM,开始执行。BootLoader:它是在操作系统内核运行之前运行的一段小程序,初始化硬件设备、建立内存空间映射图,从而将OS拉起来。Linux K
转载
2023-12-16 07:34:08
148阅读
一、总体框架 先上一张google提供官方的Android框架图: Android系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications(E文不好就不翻译了,其实这也是简单的计算机E文啦)下面分别讲述每部分的主要作用:1、Linux Kernel Android基于Lin
转载
2023-10-01 10:04:59
364阅读
Android的系统架构栈分为4层,从上往下分别是Applications、Application framework、Libraries & Android Runtime、Linux Kernel。每层提供不同的Service功能以供上层调用。 一:Linux Kernel(Linux 内核):位于Android系统架构栈的底部,整个Android系统
转载
2023-08-07 00:49:01
482阅读
Android系统以及app的启动过程常见概念(安卓手机在启动的时候做的一些事情)Android app 的启动过程 常见概念(安卓手机在启动的时候做的一些事情)1 bootloader:是硬件启动的引导程序,主要作用在于为硬件准备好相应的操作环境,为操作系统准备好环境,和windows的Bios差不。 2 kernel 编译内核,kernel层是指Android内核层,到这里才刚刚开始进入An
转载
2023-09-22 20:19:54
453阅读
1、Linux KernelAndroid基于Linux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。 如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也
转载
2024-07-01 18:36:39
64阅读
问一:编译出来的Linux内核镜像(".\build\arch\arm64\boot\Image"),可以单独运行吗?答案是能,但是加载完就提示panic,然后死掉了。原因是: 内核代码加载完后,一定要切换到低权限模式运行, 内核是设计来为 运行于低CPU权限的 "userSpace app" 服务的。 内核切换到低权限模式去运行的方式,就是去运行一个普通程序——用户态的可执
转载
2023-10-01 17:33:04
215阅读
内核源码树的目录下都有两个文档Kconfig(2.4版本是Config.in)和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文档中。 在内核编译时,主Makefile调
转载
2023-10-08 14:19:23
477阅读
在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录。在Android系统中,提供了简单、便利的LOG机制,开发人员可以方便地使用。在这一篇文章中,我们简单介绍在Android内核空间和用户空间中LOG的使用和查看方法 一. 内核开发时LOG的使用。Android内核是基于Linu
转载
2024-02-06 14:07:27
47阅读
编译linux内核映像 a)准备交叉编译工具链 android代码树中有一个prebuilt项目,包含了我们编译内核所需的交叉编译工具。“/bin/sh: arm-eabi-gcc: not found” 这样的错误,因此最好从CodeSourcery上面载用于交叉编译的工具链: http://www.codesourcery.com/gnu_toolchains/arm/down
转载
2023-12-23 15:02:13
98阅读
写在前面 众所周知,目前各大APP的安全模块几乎都会使用自实现的libc函数,如open,read等函数,通过自实现svc方式来实现系统调用。因此我们如果想要hook系统调用,只能通过扫描厂商自实现的代码段,定位svc指令所在地址,再通过inline hook方式来进行hook操作,但是这种方式需要涉及内存修改,很容易被检测到内存篡改行为。作者:风铃Cipher本文将利用seccomp方式来监听系
转载
2023-12-17 12:45:29
333阅读
4.Android专有的驱动程序除了上面这些不同点之外,最重要的是,为了突出android特性,支持android设备,Android还对Linux设备驱动进行了增强,主要如下所示。1)Android Binder 基于OpenBinder框架的一个驱动,用于提供 Android平台的进程间通信(InterProcessCommunication,IPC)功能。源代码位于drivers/stagi
转载
2024-07-30 17:43:05
12阅读