自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (2)
  • 收藏
  • 关注

转载 androoid framework学习之 - 选项菜单OptionsMenu

选项菜单OptionsMenu在2.3.x版本时是经常用到的,Android4.0仍然可以正常使用,但样式发生了不小的变化。一、Android4.0之OptionsMenu默认样式  1、布局文件  (1)打开“res/layout/activity_main.xml”文件。    输入以下代码:[html] view plain copy

2016-12-30 11:40:45 334

转载 androoid framework学习之 - SubMenu创建选项菜单

转载自http://blog.csdn.net/jianghuiquan/article/details/8350525创建子菜单的步骤:  (1) 覆盖Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法来添加子菜单  (2) 调用SubMenu的add()方法,添加子菜单项  (3) 覆盖onContextItemSele

2016-12-30 11:39:26 267

转载 androoid framework学习之 - ContextMenu上下文菜单

转载自http://stephen830.iteye.com/blog/1130637Android 菜单(ContextMenu) Android 的ContextMenu,即上下文菜单。(类似电脑上的鼠标右键功能,选中某个元素,然后点右键,在弹出菜单上执行操作。)在手机上,通过长时间按住界面上的元素,就会出现事先设计好的上下文菜单。 主要用到

2016-12-30 10:56:03 364 1

转载 Android Activity 多个状态函数之间的执行顺序

以前总以为activity间跳转的时候只需要onPause, onResume就行了,今天做了试验发现不是这样,除了执行这两个函数之外,跳转的时候onStart(), onStop也要执行,而只有屏幕背光灯启动关闭时候只执行onResume()或者onPause()具体情况的执行过程如下:动作一:Activity第一次启动时onCreate()  ——〉onStart()——〉on

2016-12-29 15:06:33 383

原创 androoid framework学习之Settings的主界面的代码流程分析

今天开始学setting的相关代码流程,主要是主界面生成的流程。1.Settings简述:Setting模块大家很熟悉把,那你知道它是怎么形成的吗?其实Setting也不是什么高级的东西,它就是一个APP,属于Android的应用层,源码在packages\apps\Settings中,今天分析的源码是基于Android5.1,那下面还是先来看下

2016-12-28 14:40:02 2533

转载 androoid framework学习之ContentProvider组件(很不错)

ContentProvider简介ContentProvider的主要作用是实现不同的应用程序之间的数据的共享,而且还保证了数据的安全性。 ContentProvider是Android提供的实现程序之间数据共享的一套机制。ContentProvider的使用1.创建ContentProvider首先我们要为应用程序准备数据,我们在数据库里面添加10

2016-12-27 16:26:54 265

转载 androoid framework学习之activity组件

本文的主要内容包括1、activity的建立、配置和使用;2、activity的跳转和传值;3、startActivityForResult;4、activity的生命周期。1、activity的建立、配置和使用Activity是一个应用中的组件,它为用户提供一个可视的界面,方便用户操作,比如说拔打电话、照相、发邮件或者是浏览地图等。每个activity会提供一个可视的窗口,一般情

2016-12-27 16:10:50 351

转载 androoid framework学习之BroadCast组件

BroadCast的定义:广播是一种订阅--通知 事件,广播接收者向Android系统 register (订阅广播),广播发送者向Adnroid系统 sendBroadCast(发送广播),然后Android 系统通知所有注册该广播的接收者,广播接收者收到自己注册的广播之后实现自己想做的事情(该事情一般不超过10s,否则应用会出现ANR)。 BroadCast的分类:1.无序

2016-12-27 16:06:33 282

转载 androoid framework学习之Service组件

1、要使用Service,首先就是在配置文件里吗添加Service,如果不填加,你的Service是不能够使用的。目前学到的方法有两种   方法一:   方法二:  点后面是Service类的名字。2、工程包括两个类:ServiceActivity.javaPlayService.java其中:ServiceActivity.java定义了两

2016-12-27 14:58:59 277

转载 android系统架构及源码目录结构

1. Android系统架构:  android系统架构采用了分层架构的思想,如下图所示,从上到下共4层,分别为:应用程序层、应用程序框架层、系统库和android运行时层、Linux内核层。每层功能简要介绍如下:应用程序层(Java应用程序):  该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者

2016-12-26 11:15:37 600

原创 android底层驱动学习之java基本语法的学习(二)

1.Applet的定义 是用java写的,由于内部是实现方法和成员变量,其实也就是没有main函数所以不能单独执行,他主要用于在html中,与html通信。用户可以静态显示Applet,像显示一幅图片或者一段文本一样;Applet也可以是一个动态交互过程,用户输入简单的数据,就会产生相应的响应。可以载入图像、声音、视频等,相当于一个网页的各种操作,图像的位置==2.Graphi

2016-12-25 10:19:32 386

原创 android底层驱动学习之java基本语法的学习(一)

1.java的基本文件是:public class HelloWorld{public static void main(String args[]){System.out.printf("Hello World");}}注意一下几点:a.红色字体的类名必须和文件名一致,也就是说,该文件的名称必须是HelloWorld.javab.这个就是java函数的

2016-12-24 18:56:33 564

原创 android底层驱动学习之debug方法(proc、sysfs、debugfs)

android底层驱动学习之debug方法(proc、sysfs、debugfs) 在调试内核驱动程序时,刚开始接触时,不知如何输出自己想要的信息,所以我们需要建立一些debug方法来获取。 下面先说下自己今天学的几种方法: 1.       proc文件系统 a.      首先,proc文件系统是个什么东西呢Linux系统上的/proc目录是一种文件系统,即

2016-12-21 16:02:29 3180

原创 android底层驱动学习之内存初步

android底层驱动学习之内存初步 1.       首先先认识下几个分配内存的接口函数:l  rbuff = kmalloc(len + 4, GFP_KERNEL)GFP_KERNEL是flag,可以通过该flag来设定分配内存的方式,目前这个GFP_KERNEL就是可以睡眠的,优先级普通;如果是GFP_ATOMIC则优先级高,是原子的,不能睡眠. 通过kfree(rbu

2016-12-21 16:01:58 881

原创 android底层驱动学习之工作队列work_queue相关参数

android底层驱动学习之工作队列work_queue相关参数 今早看了与工作队列有关的相关知识,下面总结下:1.       什么是工作队列:工作队列(work queue)是另外一种将工作推后执行的形式。工作队列可以把工作推后,交由一个内核线程去执行—这个下半部分总是会在进程上下文执行,但由于是内核线程,其不能访问用户空间。最重要特点的就是工作队列允许重新调度甚至是睡眠。

2016-12-21 16:01:33 838

原创 android底层驱动学习之focaltech触屏实例理解

android底层驱动学习之focaltech触屏实例理解          这个星期接触了具体的驱动实例-----focaltech公司的触控IC。下面总结下我个人对于触屏驱动的理解,分为两个方面:硬件方面和软件驱动方面 硬件方面: 1.       简单介绍下触摸屏的发展随着计算机技术的普及,在20世纪90年代初,出现了一种新的人机交互作用技术--触摸屏技术。利用这

2016-12-21 16:00:08 5157

转载 Linux 文件系统:procfs, sysfs, debugfs 用法简介

1 前言内核中有三个常用的伪文件系统:procfs,debugfs和sysfs。procfs — The proc filesystem is a pseudo-filesystem which provides an interface to kernel data structures.sysfs — The filesystem for exporting kerne

2016-12-19 15:44:32 468

原创 android底层驱动学习之内核信息的输出以及控制方式

1.对于内核信息全部都是通过printk打印的,下面先讲下printk,klogd,syslogd 关系printk ------------>  ________________________________                                   |   /proc/kmsg                                   

2016-12-15 14:24:24 918

转载 Linux 文件系统:procfs, sysfs, debugfs 用法简介

1 前言内核中有三个常用的伪文件系统:procfs,debugfs和sysfs。procfs — The proc filesystem is a pseudo-filesystem which provides an interface to kernel data structures.sysfs — The filesystem for exporting kerne

2016-12-14 11:37:33 393

原创 android底层驱动学习之log的输出

1.对于printk()函数:用法:printk( KERN_DEBUG "Serial: 21285 driver\n");//红色字体为level那么在linux/kernel文件中:#define    KERN_EMERG    ""    #define    KERN_ALERT    ""    #define    KERN_CRIT    ""    

2016-12-13 14:39:09 2092

转载 android底层驱动学习之I2C(二)---以C语言理解IIC

为了加深对I2C总线的理解,用C语言模拟IIC总线,边看源代码边读波形:如下图所示的写操作的时序图: 读时序的理解同理。对于时序不理解的朋友请参考“I2C总线之(二)”完整的程序如下: #include#define uchar unsigned char#define uint unsigned int#define wr

2016-12-12 13:34:08 1269

转载 android底层驱动学习之I2C概述及工作原理(一)

1.概述:I²C 是Inter-Integrated Circuit的缩写,发音为"eye-squaredcee" or "eye-two-cee" , 它是一种两线接口。I²C 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿触发)SD

2016-12-12 13:29:40 2138

原创 android底层驱动学习之日志信息、printk的个人理解

无论对于什么开发者来说,日志信息都尤为重要,通过日志我们可以更好的分析问题。那下面就然我们来看下:1.平常最常用的printk,你知道多少?①printk是一个什么函数呢-------该函数可以通过具体的格式如:printk(KERN_INFO "comedi%d\n", minor);KERN_INFO ----就是level,信息的级别了。在kernel/pri

2016-12-09 16:07:06 2447

原创 android底层驱动学习之DebugFS的用法,以及对file_operations的进一步理解

DebugFS,顾名思义,是一种用于内核调试的虚拟文件系统,内核开发者通过debugfs和用户空间交换数据。类似的虚拟文件系统还有procfs和sysfs等,这几种虚拟文件系统都并不实际存储在硬盘上,而是Linux内核运行起来后才建立起来。那如何交换数据呢?下面请看:1.首先先看定义:static const struct file_operations __fops =

2016-12-09 15:06:31 864

转载 Linux I2C 几个结构体间的关系以及对于一个I2C设备的移植,我们需要做些什么工作

在Linux内核源代码中的drivers目录下包含一个i2c目录,而在i2c目录下又包含如下文件和文件夹:•  i2c-core.c这个文件实现了I2C核心的功能以及/proc/bus/i2c*接口。•  i2c-dev.c实 现了I2C适配器设备文件的功能,每一个I2C适配器都被分配一个设备。通过适配器访问设备时的主设备号都为89,次设备号为0~255。应用程序通过 “i2c-%

2016-12-09 09:46:41 450

原创 android底层驱动学习之从应用程序如何到底层driver的调用

1.首先来看下struct file_operations 的定义:struct file_operations { struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);

2016-12-08 18:17:46 2031 1

原创 android底层驱动学习之如何通过debugfs创建文件的方式来调试内核信息

对于驱动的调试,有时我们得通过调试某些IO口,或者一些I2C总线,那我们是不是要通过一些API来操作,但是在用户空间(shell)又不能直接调用该接口,那我们其实也可以通过建立一个debugfs文件结点方式来做。具体如下:1.举个例子来说明,在调试GPIO驱动的时候,我们可以通过debugfs来调试:首先定义一个file_operations:staticconst str

2016-12-08 16:22:24 705

原创 android底层驱动学习之调试驱动DEVICE_ATTR的原理及用法

1.首先来看下DEVICE_ATTR的 定义#define DEVICE_ATTR(_name, _mode, _show, _store) \struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store)_name:名称,也就是将在sys fs中生成的文件名称。_mode

2016-12-08 15:18:28 3712

转载 四、Linux input 子系统学习之input_register_device 分析

我们之前已经说过,input_register_device 的作用就是注册一个 input_device。 在分析input_register_device 之前,我们先搜索一下,究竟哪里会调用这个函数你呢。可以看到很多文件都调用了,我们看到一个熟悉的文件ft5x.c。可以想象到,是在设 备初始化时候,要向input子系统注册一个input_dev,因为只有这样才能用input子系统里面

2016-12-08 10:26:39 1101

转载 三、Linux input 子系统学习之register_input_handler 分析

这一篇,我们来分析input_register_handler 这个非常重要的函数。就像之前说过的一样,这是注册一个驱动。  我们去input目录下看看那些文件调用的这个函数,分别有:evdev.c(evdev驱动)、joydev.c(joydev驱动)、keychord.c(按键驱动)、mousedev.c(鼠标驱动)。  也即是每个文件,对于一种驱动,并在里面进行注册驱动。

2016-12-08 10:25:52 1889 1

转载 workqueue及相关API的介绍

一、workqueue简介workqueue与tasklet类似,都是允许内核代码请求某个函数在将来的时间被调用(抄《ldd3》上的)每个workqueue就是一个内核进程。workqueue与tasklet的区别:   1.tasklet是通过软中断实现的,在软中断上下文中运行,tasklet代码必须是原子的-----这个还不懂?     workqueue是通过内核

2016-12-07 16:44:04 302

转载 Linux内核中的GPIO系统之(3):pin controller driver代码分析

一、前言对于一个嵌入式软件工程师,我们的软件模块经常和硬件打交道,pin control subsystem也不例外,被它驱动的硬件叫做pin controller(一般ARM soc的datasheet会把pin controller的内容放入GPIO controller的章节中),主要功能包括:(1)pin multiplexing。基于ARM core的嵌入式处理器一般会提

2016-12-07 14:18:08 544

原创 android底层驱动学习之linux输入子系统的理解

1.什么叫输入子系统?        内核的输入子系统是对分散的,多种不同类别的输入设备(如键盘,鼠标,跟踪球,操纵杆,触摸屏,加速计和手写板)等字符设备进行统一处理的一层抽象,就是在字符设备驱动上抽象出的一层。输入子系统包括两类驱动程序:事件驱动程序和设备驱动程序。事件驱动程序负责和应用程序的接口,而设备驱动程序负责和底层输入设备的通信。鼠标事件生成文件mousedev属于事件驱动程序,而P

2016-12-06 16:49:10 2744

转载 linux input输入子系统分析《一》:初识input输入子系统

1      开发环境主  机:ubuntu10.04开发板:mini2440内

2016-12-06 14:11:50 392

原创 android底层驱动学习之设备树驱动及设备匹配过程

问题一:为什么需要设备树?在目前广泛使用的Linux kernel 2.6.x版本中,对于不同平台、不同硬件,往往存在着大量的不同的、移植性差的板级描述代码,以达到对这些不同平台和不同硬件特殊适配的需求。但是过多的平台、过的的不同硬件导致了这样的代码越来越多,比如arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码, platform设备、resou

2016-12-05 17:22:23 5280 1

转载 android4.0触摸屏(touchscreen)以及屏幕按键驱动解析

转载自:http://www.aiuxian.com/article/p-1888384.html本人用的触摸屏IC是FocalTech公司的ft5306,是一款i2c的电容屏多点触控芯片。对于它的整体驱动官方已经给了,我们就触摸屏和按键部分的代码做相关说明。说明其中应该注意的地方。对于所有的input设备,报告input事件时候都分这么几部分,首先在probe文件中设

2016-12-05 15:16:04 2925

转载 嵌入式linux驱动开发流程

嵌入式linux驱动开发流程嵌入式系统中,操作系统是通过各种驱动程序来驾驭硬件设备的。设备驱动程序是操作系统内核和硬件设备之间的接口,它为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,可以像操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,完成以下功能:◇ 驱动程序的注册和注销。◇ 设备的打开和释放。◇ 设备的读写操作。

2016-12-05 11:37:48 698

原创 android底层驱动学习之 module_init的内核调用顺序

1.一个驱动开始总有一 个init函数,那是怎么样实现的呢?可以看到在每个驱动都有module_init(要init的函数指针即函数名),在我focaltech_core.c是这样的:module_init(fts_ts_init);2.追code可以看到以下流程:#define module_init(x) __initcall(x);#d

2016-12-05 11:13:22 1699

转载 linux中断的上半部和下半部

转载自http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=24690947&id=3491821一、什么是下半部中断是一个很霸道的东西,处理器一旦接收到中断,就会打断正在执行的代码,调用中断处理函数。如果在中断处理函数中没有禁止中断,该中断处理函数执行过程中仍有可能被其他中断打断。出于这样的原因,大家都希望中断

2016-12-04 13:47:38 330

转载 driver_register 的整个过程

转载:http://www.360doc.com/content/13/0705/10/3779243_297777301.shtml/*** driver_register - register driver with bus* @drv: driver to register** We pass off most of the work to the bus_add_dri

2016-12-02 15:29:48 351

关于高通RIL很深入的讲解-逻辑性强

关于高通RIL很深入的讲解-逻辑性强

2017-02-20

Android的Message机制(Handler、Message、Looper)

对于Android的Message机制主要涉及到三个主要的类,分别是Handler、Message、Looper;首先对每个类做一个简单介绍;然后再介绍所谓的Android的Message机制是如何实现的,最后给了一个示例。

2017-02-16

空空如也

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

TA关注的人

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