Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

升级Android内置apk版本

升级Android内置apk版本

如果升级Android内置apk版本,遇到系统重启后又被还原,那是因为你手动安装的apk版本号和内置系统的apk版本号一样。这样的情况,在开发调试系统apk的情况中容易出现。关于Android系统内置的apk更新后,在系统重启以后又被还原的问题,解决方法如下:将 frameworks/base/services/java/com/android/server/PackageManagerService.java 中 scanPackageLI函数的pack...
Linux设备驱动工程师之路——内核链表的使用

Linux设备驱动工程师之路——内核链表的使用

一、重要知识点1.内核链表和普通链表的区别内核链表是一个双向链表,但是与普通的双向链表又有所区别。内核链表中的链表元素不与特定类型相关,具有通用性。我们先来看一幅图 kernel list展示的是内核链表的结构,normallist展示的是普通链表的结构。head是链表头,p1,p2,p3是链表节点。从图中可以看出普通链表的p1的next指针是指向的结构体p2的地址,p2的pre指针指向p1结构体的地址。而内核链表的p1的next指向的是p2结构体中包含p...
Linux设备驱动工程师之路——硬件访问及混杂设备LED驱动

Linux设备驱动工程师之路——硬件访问及混杂设备LED驱动

一、重要知识点 1.I/O端口和I/O内存寄存器和常规内存的区别:寄存器和RAM主要不同在于寄存器有边际效果,读取某个地址时可能导致该地址的内容发生变化,比如说很多设备的中断状态寄存器只要一读取,便自动清0。所以硬件寄存器不能直接访问,而要通过I/O端口和I/O内存两种方式访问。在硬件层,I/O内存区域和I/O端口区域没有概念上的区别:它们都是通过向地址总线和控制总线发生电平信号进行访问,再通过数据总线读写数据。 a.I/O端口: 一些CPU制造厂在它们...
Linux设备驱动工程师之路——Linux内存管理机制及mmap方法

Linux设备驱动工程师之路——Linux内存管理机制及mmap方法

一、重点知识 1. Linux内存管理机制 Linux 2.6.29内核为每种CPU提供统一的界面,采用四级页面管理构架。来兼容二级、三级、四级管理架构的CPU。通过页式管理机制完成虚拟地址(线性地址)到物理地址的映射。一般每个页大小为4K。cr3寄存器中保存了创建进程时分配的值。 Linux操作系统采用虚拟内存管理技术,使得每个进程都有独立的进程地址空间,该空间大小是3G,用户看到和接触的都是虚拟地址,无法看到实际的物理地址。利用这种虚拟地址不但能起到保...
Linux设备驱动工程师之路——高级字符设备驱动程序

Linux设备驱动工程师之路——高级字符设备驱动程序

高级字符设备驱动在简单字符驱动的基础上添加ioctl方法、阻塞非阻塞读写、poll方法、和自动创建设备文件的功能。一、重要知识点 1.ioctlioctl命令:使用4个字段定义一个ioctl命令,包括type: 幻数,一般使用一个字符定义,在内核中唯一。number: 序数。direction: 数据传输方向,当不涉及数据传输时,此字段无效。size: 所涉及用户数据的大小,当不涉及数据传输时,此字段无效。_IOC_NONE_IOC_READ_IOC_WR...
GCC编译“Value too large for defined data type”错误解决办法

GCC编译“Value too large for defined data type”错误解决办法

在Linux上编译通过mount来访问的windows共享目录下的C代码的时候,总是出现Valuetoolargefordefineddatatype错误,但是检查了一下代码,没有用的到什么特殊的函数,并且同样的代码在别的机器上就可以编译通过,或者把代码从共享目录下拷贝到本地也可以编译,就是在共享目录目录下不能编译。后来就想到可能是mount命令导致的这个问题。查了一些资料,发现在mount的时候加上“nounix,noserverino”选项后,就不再出...
浅析Android的RILD服务进程的消息循环

浅析Android的RILD服务进程的消息循环

Android中,RILD是RIL(Radio Interface Layer) Deamon的简称。简单的说它下面承接GSM/GPRS Modem(电话通信模块),上面接电话应用相关的Java库(telephony internal)。telephony internal通过socket将请求发送给RILD的消息循环,消息循环则将请求转发给底层通信模块(直接调用底层的库)来实现对通信模块功能的调用。反之,当通信模块有类似于来电的消息时,也会通过RILD的...
编译Android源码的Make命令解析

编译Android源码的Make命令解析

摘要:本文描述了编译Android源码时,make命令后面隐藏的玄机,通过一步步的分析,你会发现,实际上不是想象的那么复杂(肯定比编hello world复杂,哈)。正文:最近编译了一下android 1.6,同时也分析了一下android的build system。build system对我来说实在太大,要想了解这个系统的细节不是一两天可以完成的,于是我就退而求其次,去了解编译android源码的命令make。还是那句话,一切都是从编译开始的。1. m...
浅析调用Android的content provider

浅析调用Android的content provider

在Android下,查询联系人、通话记录等,需要用到content provider。但是,调用content provider时,Android框架内部是如何做的呢?这一系列文章就是解决这个问题的,所采用的开发环境及源码都是基于Android 1.6版本。概述 总的来说此问题分为两个步骤:初始化content provider。这一阶段主要是参照AndroidManifest.xml,初始化content provider。注意这里只有当包含conte...
Android利用NDK实现C++开发

Android利用NDK实现C++开发

NDK概述 NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。Google明确声明该API是稳定的,在后续所有...
Linux下objdump汇编与C源程序混合显示

Linux下objdump汇编与C源程序混合显示

问题描述:在Linux下发生一个进程死机问题,由于进程跑在客户的机器上,没有启用Coredump,因此死机没有CoreDump文件,仅有进程临死前的调用栈信息;调用栈中保存了导致死机的函数的入参和局部变量的内容,需要对其进行解析,确定临死前入参和局部变量的内容。解决方案:(1)入参的解析,入参的解析相对较为简单,如函数A调用函数B,B的入参可以这样确定:首先在堆栈中找到A的EIP,EIP的前一个地址就是A的EBP,EIP的后一个地址是B的第一个入参,依次类...
从ramdisk根文件系统启动Linux成功

从ramdisk根文件系统启动Linux成功

这几天参考国嵌的实验手册和网上的资料完成了u-boot定制、内核定制、ramdisk根文件系统的制作,并成功。趁热打铁,总结一下。本文引用了很多网络上的文章,就不一一注明了。感谢各大侠的帮助,如有雷同,望见谅。开发环境:红帽企业版5交叉编译工具链:arm-linux-gcc4.3.2嵌入式Linux内核版本:友善之臂的mini2440开发板光盘自带的内核linux-2.6.32.2开发板:mini2440-64MNand FlashBootloader:u...
嵌入式学习记录:内存管理单元(MMU)介绍

嵌入式学习记录:内存管理单元(MMU)介绍

嵌入式系统中,存储系统差别很大,可包含多种类型的存储器件,如 FLASH , SRAM , SDRAM , ROM 等,这些不同类型的存储器件速度和宽度等各不相同;在访问存储单元时,可能采取平板式的地址映射机制对其操作,或需要使用虚拟地址对其进行读写;系统中,需引入存储保护机制,增强系统的安全性。为适应如此复杂的存储体系要求, ARM 处理器中引入了存储管理单元来管理存储系统。 一 内存管理单元( MMU )概述 在 ARM 存储系统中,使用 MMU 实...
嵌入式Linux学习笔记

嵌入式Linux学习笔记

注:所有内容基于友善之臂Mini2440开发板一、嵌入式Linux开发环境的构建嵌入式开发一般分为三个步骤:1、编译bootloader,烧到开发板2、编译嵌入式Linux内核,烧到开发板3、编译各类应用程序,烧入开发板软件环境构建采用主机windows,虚拟机CentOS上作为开发环境,虚拟机的安装和Linux安装就不说了。安装好后Linux应该配置samba服务,挂载windows下的代码共享目录安装交叉编译工具链对于嵌入式Linux,程序都是下到开发...
<< 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 >>