分析android零部件
文章平均质量分 92
Android是基于很多开源项目的集成,包括世界范围内最牛的开源内核Linux。分析每个组件和它们的协作过程对于贯通Android的工作和原理起着厚积而薄发的作用,正所谓不积跬步,无以至千里,不积小流,无以成江海。
Eliot_shao
年轻人有先见之明。。。。。
展开
-
Android架构实例分析之编写hello驱动的系统硬件服务
摘要:在上一文中介绍了hello驱动的JNI方法,最终更新在android runtime中的java-native函数表。本文将介绍java的世界中如何通过调用JNI定义的java函数实现hello系统服务进程,为应用程序提供系统服务。通信代理AIDLjava的世界,硬件服务一般是运行在一个独立的进程中为各种应用程序提供服务。因此,调用这些硬件服务的应用程序与这些硬件服务之间的通原创 2016-07-12 12:52:37 · 1515 阅读 · 0 评论 -
Android架构实例分析之注册hello HAL的JNI方法表
Android架构实例分析之注册hello HAL的JNI方法表摘要:Android JNI是一种技术,提供Java调用Android native代码或者native调用Java代码的一种机制,并不提供策略。本文实现了基于前面两篇文章:Android标准架构实例分析之编写最简单的hello驱动 http://blog.csdn.net/eliot_shao/article/details/518原创 2016-07-09 00:50:13 · 2689 阅读 · 0 评论 -
Android架构实例分析之编写hello驱动的HAL层代码
Android架构实例分析之编写hello驱动的HAL层代码摘要:HAL层中文名称又叫硬件抽象层,可以理解我Linux驱动的应用层。本文实现了一个简单的hello HAL的代码,衔接hello驱动和hello JNI:http://blog.csdn.net/eliot_shao/article/details/51860229Android标准架构实例分析之编写最简单的hello驱动HAL层的代码原创 2016-07-08 16:20:50 · 7314 阅读 · 2 评论 -
Android标准架构实例分析之编写最简单的hello驱动
Android标准架构实例分析之编写最简单的hello驱动摘要:本文主要实现了一个虚拟的字符设备驱动–hello_device 。这个设备驱动会创建相关的cdev数据结构和file_operations,并通过class_create和device_create在sys文件系统上创建相关的目录和文件,为udev创建相关的设备文件提供资源。最终会在/dev/下面创建/dev/hello这个文件节点。并原创 2016-07-08 13:34:46 · 4685 阅读 · 2 评论 -
ServiceManager add_service SELinux Permission Denied
问题点:在systemserver.java中添加如下代码,向servicemanager进程中添加一个service try { Slog.i(TAG, "Hello Service"); ServiceManager.addService("hello", new HelloService());// } catch (Throwable e) {原创 2016-06-27 19:17:55 · 10348 阅读 · 0 评论 -
Android白话启动篇(Android booting process)
今天我们将深入Android的启动流程,从用户按下开机键到Android界面的过程。在谷歌上搜索“Android boot process”会得到很多很好英文文章,讲解Android启动这一过程,每个人讲述的角度不一样,通过阅读,对于Android的理解将会更加深刻。下面是链接,打不开的请翻墙!谢谢!https://www.google.com.hk/search?q=The+Android+原创 2016-07-01 12:41:37 · 7938 阅读 · 1 评论 -
SystemServer vs ServiceManager
背景在Android系统中有很多内置的软件,例如,当手机接到来电时,会显示对方的电话号。也可以根据周围的环境将手机设置成震动或静音。如果想把这些功能加到自己的软件中应该怎么办呢?答案就是“系统服务”。在Android系统中提供了很多这种服务,通过这些服务,就可以像Android系统的内置软件一样随心所欲地控制Android系统了。系统服务(System Services)并非Andro转载 2016-05-27 11:52:59 · 5388 阅读 · 0 评论 -
mtk设备模型之LCM
1、Linux设备模型站在BSP的角度来看,整个系统可以由三部分组成:设备、总线、驱动。Linux kernel有一些总线,比如USB、I2C等。对于每一个总线都会有一些设备和驱动挂在上面。驱动服务于匹配的设备,使Linux正确的操作硬件设备。当一个设备或者驱动注册到特定的总线上的时候就会触发总线匹配函数,比如一个设备注册到了总线,所有的该总线的驱动都会被枚举,判断是不是可以服原创 2016-04-14 19:21:37 · 7698 阅读 · 1 评论 -
Android aidl Binder框架浅析
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38461079 ,本文出自【张鸿洋的博客】1、概述Binder能干什么?Binder可以提供系统中任何程序都可以访问的全局服务。这个功能当然是任何系统都应该提供的,下面我们简单看一下Android的Binder的框架Android Binder框架分为服务器转载 2016-05-16 20:49:03 · 2778 阅读 · 0 评论 -
Android Service與JNI Native Code之關係
l 前言 到底甚麼是Android Service呢? 幾乎人人所談都不盡相同。有人依據Java的套件而分,例如Android 2.1裡,SensorService.java和ActivityManagerService.java屬於不同的套件,有人說SensorService是一項Android Service;而ActivityManagerService則不是。另有人說兩者转载 2016-05-04 13:50:23 · 1443 阅读 · 0 评论 -
例说android静态JNI调用C/C++代码——HelloWorld
JNI是实现android调用C/C++函数的一种方法。具体实现过程大概可以理解为如下过程:HelloWorld.java-------javah -jni HelloWorld--------->HelloWorld.h----->HelloWorld.c-----cc--->libHelloWorld.so|| javac HelloWorld|\/HelloWorld原创 2015-11-13 14:54:04 · 1187 阅读 · 0 评论 -
android BSP与硬件相关子系统读书笔记(1)android BSP移植综述
对于一些简单的设备驱动,可以不用写HAL的代码,实际上很多时候也不用去写,一种常见的情况是由JNI的部分代码直接调用驱动程序的设备节点或者使用sys文件系统。也可以直接把/sys/的属性文件(可以通过cat和echo读写)的文件接口直接提供给java层代码调用。原创 2015-12-09 22:33:00 · 8752 阅读 · 0 评论 -
例说如何编译android模块
首先介绍一下android的编译系统。与Linux kernel的编译系统相比较,内核依赖于makefile文件,从顶层的makefile递归调用子目录中的makefile文件,完成对源码文件的编译。Android的编译系统不在依赖于makefile文件,而是make文件Android.mk。android由一个脚本会搜索目录和子目录第一个出现Android.mk文件,根据Android.mk的内原创 2015-12-31 14:01:21 · 3621 阅读 · 1 评论 -
例说Android 硬件抽象层
Android系统从宏观上可以看成一个图形系统,类似于QT,迷你GUI等开源的图形用户界面系统。但是android作为手机软件包,它还具有很多的其他功能是QT、MINIGUI不具备的,比如电话、定位、WIFI、sensor、摄像头等功能。Android集成了很多开源的代码,我们只需要在Linux层做好硬件的驱动程序剩下的很多软件开发工作android都是做好了的。烧写过手机固件的都知道,andro原创 2016-01-05 12:50:15 · 3709 阅读 · 0 评论