android驱动开发
u010457344
这个作者很懒,什么都没留下…
展开
-
制作可独立分发的Android模拟器
如果我们编写了一个Android应用程序,想在一台没有Android SDK或者BUILD环境的机器显示给别人看,应该怎么办呢?通常,我们开发Android应用程序的时候,都是使用模拟器来运行程序,要么是SDK环境下,要么是在源代码BUILD环境下使用。在SDK环境下,结合Eclipse和ADT,使用模拟器很方便,而BUILD环境下,也是很简单地使用emulator命令就可以了,具体可以参考在Ub转载 2014-12-28 16:32:58 · 504 阅读 · 0 评论 -
Android驱动开发系列六
在Ubuntu上为Android系统内置Java应用程序测试Application Frameworks层的硬件服务 我们在Android系统增加硬件服务的目的是为了让应用层的APP能够通过Java接口来访问硬件服务。那么, APP如何通过Java接口来访问Application Frameworks层提供的硬件服务呢?在这一篇文章中,我们将在Android系统的应转载 2014-12-28 16:26:30 · 730 阅读 · 0 评论 -
Android 开发之 ---- bootloader (LK)
LK是什么 LK 是 Little Kernel 它是 appsbl (Applications ARM Boot Loader)流程代码 ,little kernel 是小内核小操作系统。 LK 代码 在 bootable/bootloadler/lk 目录下 LK 代码结构 +ap转载 2014-12-28 15:34:35 · 612 阅读 · 0 评论 -
Android 开发之 ---- 底层驱动开发(二)
Android 设备驱动(下) MTD 驱动 Flash 驱动通常使用 MTD (memory technology device ),内存技术设备。 MTD 的字符设备: /dev/mtdX 主设备号转载 2014-12-28 15:35:28 · 547 阅读 · 0 评论 -
解决 需要的目标“out/target/product/generic/obj/lib/liblog.so”。 停止。
在编译Android 4.0的HAL层时,出现下面的错误信息:[plain] view plaincopyroot@brantyou-ubuntu:~/workspace/android-4.0.4_r1.2# mmm hardware/libhardware/modules/hello/ ===========================转载 2014-12-28 16:02:54 · 1881 阅读 · 0 评论 -
Android 驱动开发系列一
最近开始接触Android底层的开发,这里面将记录开发一个驱动以及到测试的全过程。 首先,需要搭建Android的开发环境。我这里采用的是Ubuntu 11.04 64bit的系统,里面使用gcc-4.4,Android 4.0.4源码,硬件是S5PV210。搭建环境这一步就不说了。其次,编译好u-boot、kernel和ICS。最后,开始确定要编写什么驱动转载 2014-12-28 16:04:46 · 802 阅读 · 0 评论 -
Android 驱动开发系列三
写blog的时候,发现跳章了,HAL硬件抽象层都没有写就到JNI了,这里补回来。 1、添加HAL头文件进入到 android-4.0.4_r1.2/hardware/libhardware/include/hardware 目录,创建 ttt.h 文件:[cpp] view plaincopyroot@brantyou-ubunt转载 2014-12-28 16:10:53 · 693 阅读 · 0 评论 -
从零开始——Android 4.0 实现recovery模式,出厂设置功能
在移植recovery之前,我们需要知道为什么需要移植recovery?1、需要实现恢复出厂设置功能2、需要实现recovery升级功能(主要是方便用户自己定制ROM)在移植这个recovery的时候遇到了N多的问题,没人指导,没有可供参考的书籍,只有度娘和谷歌陪伴。下面将会提到一些典型会遇到的问题。如何进入recovery?1、开机转载 2014-12-28 16:20:45 · 656 阅读 · 0 评论 -
在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务
在数字科技日新月异的今天,软件和硬件的完美结合,造就了智能移动设备的流行。今天大家对iOS和Android系统的趋之若鹜,一定程度上是由于这两个系统上有着丰富多彩的各种应用软件。因此,软件和硬件的关系,在一定程度上可以说,硬件是为软件服务的。硬件工程师研发出一款硬件设备,自然少了软件工程师为其编写驱动程序;而驱动程序的最终目的,是为了使得最上层的应用程序能够使用这些硬件提供的服务来为用户提供软件功转载 2015-01-03 23:00:28 · 643 阅读 · 0 评论 -
Android 驱动开发系列五
这一篇将说到 如何为JNI接口(Frameworks层)添加对应的service访问服务 在Android系统中,硬件服务一般是运行在一个独立的进程中为各种应用程序提供服务。因此,调用这些硬件服务的应用程序与这些硬件服务之间的痛惜需要通过代理来进行。为此,我们需要先定义好通信的接口。 1、定义通信接口进入到android-4.0.4_r1.2/frame转载 2014-12-28 16:13:04 · 648 阅读 · 0 评论 -
Android驱动入门系列(一)
Android驱动入门系列(一) —— Android驱动简介及编写第一个Android驱动 以下文章参考网上搜到的《Android驱动开发全过程(有图有真相)》一文,其中根据自己的实际编写情况作了部分修改,不用作商业用途前言意外在网上发现了这扁文章,看后感觉很有必要分享,所以整理并上传,希望大家喜欢。Android 硬件抽象层(HAL)概要介绍和学习计转载 2014-12-28 15:57:07 · 851 阅读 · 0 评论 -
总结Android HAL层的使用方法
1、使用HAL的方法下面以Sensor传感器为例介绍使用HAL的方法,具体流程如下所示。 step1. Native code通过 hw_get_module 调用 HAL stub。[cpp] view plaincopyhw_get_module( LED_HARDWARE_MODULE_ID, (const hw_mod转载 2014-12-28 15:47:37 · 1183 阅读 · 0 评论 -
Android 驱动开发系列四
时隔多日,终于都抽出时间来写blog了。废话不多说,接着上一篇,这里将介绍如何编写HAL层(硬件抽象层)对应的JNI方法。这里提到的都是在ICS源码里编译的。 1、定义JNI层接口进入到android-4.0.4_r1.2/hardware/libhardware/include/hardware目录,并创建 ttt.h 文件,内容如下:[cpp] vi转载 2014-12-28 16:11:57 · 801 阅读 · 0 评论 -
Android 开发之 ---- 底层驱动开发(一)
驱动概述 说到 android 驱动是离不开 Linux 驱动的。Android 内核采用的是 Linux2.6 内核 (最近Linux 3.3 已经包含了一些 Android 代码)。但 Android 并没有完全照搬 Linux 系统内核,除了对Linux 进行部分修正,还增加了不少内容。android 驱动 主要分两种类型:Android 专用驱动 和 Android转载 2014-12-28 15:33:00 · 459 阅读 · 0 评论 -
Android 驱动开发系列二
最近琐碎事太多了,都没什么时间来写blog。现在继续写这个android驱动的开发调试这一章主要是讲如何测试驱动。 1、驱动的简单测试在上一篇文章中,我们已经把添加驱动模块做完了,并把驱动下载到了板子上。下面将介绍一下如何测试驱动是否正常。这个ttt驱动,我们实现了一个读、一个写的接口,就此进行简单的测试:启动板子,进入系统,然后进入命令行(可以用串口,转载 2014-12-28 16:06:25 · 1078 阅读 · 0 评论 -
编译Android驱动对应的C测试程序出错的解决方法以及正确流程
编写好驱动之后,另外写了个C程序来测试驱动,但是在编译的时候,出现了如下的错误:[plain] view plaincopybuild/core/base_rules.mk:166: *** frameworks/base/opengl/libs: MODULE.TARGET.ETC.egl.cfg already defined by deve转载 2014-12-28 15:49:02 · 656 阅读 · 0 评论 -
error: 'struct proc_dir_entry' has no member named 'owner'的解决方法
在编译Android 4.0驱动的时候,使用到了proc_dir_entry结构体中的owner成员,但是编译的时候,却出现了下面的错误:[plain] view plaincopydrivers/hello/hello.c:217: error: 'struct proc_dir_entry' has no member named 'owner'转载 2014-12-28 15:50:41 · 1383 阅读 · 0 评论 -
浅谈Android系统开发中LOG的使用
在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录。在Android系统中,提供了简单、便利的LOG机制,开发人员可以方便地使用。在这一篇文章中,我们简单介绍在Android内核空间和用户空间中LOG的使用和查看方法。 一. 内核开发时LOG的使用。Android内核是基于Linux Kerne 2.36的,因转载 2014-12-28 16:31:46 · 508 阅读 · 0 评论 -
《Android底层开发技术》学习总结
《Android底层开发技术实战详解——内核、移植和驱动》学习总结整本书看的比较粗,了解个大概,以后需要的时候,可以针对性的学习!Android与Linux的关系Linux Kernel的版权是GPL(General Public License),它要求对源代码的任何修改都必须开源。Android的Kernel采用的GPL,但Android采用ASL(Apache Softw转载 2014-12-28 15:29:45 · 778 阅读 · 0 评论 -
Binder---- Android 的IPC 通信机制
什么是Binder 在 linux 中,进程间的通讯机制有很多种,例如管道(pipe)、消息队列(message queue)、信号(signal)、共享内存(share memory)、套接字(socket)等方式,他们都是可以实现进程间通讯。但是,在 Android 终端上的应用软件的通信几乎看不到这些 IPC 通信方式,取而代之的是 Binder。Android 同时为转载 2014-12-28 15:31:58 · 555 阅读 · 0 评论 -
Android之 看“马达”如何贯通Android系统 (从硬件设计 --> 驱动 --> HAL --> JNI --> Framework --> Application)
在Android 2.3(Gingerbread) 系统的时候,我写过一篇关于“Android 震动马达系统“的文章,当时的Linux内核还是2.6版本的。写那篇文章的目的,是想彻底的了解从硬件到驱动,再到应用的运作流程。完成了之后,文章一直仍在草稿箱里面没发表;今天看到,决定整理一下,重新发表。目的是想和大家分享自己对Android系统的一点认识:以马达为代表,来考究“Android是如何一步步转载 2015-01-03 22:31:34 · 870 阅读 · 0 评论