- 博客(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
原创 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
Android的Message机制(Handler、Message、Looper)
2017-02-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人