- 博客(36)
- 资源 (9)
- 收藏
- 关注
原创 android数据存储_SQL数据库
//继承SQLiteOpenHelper类,public class DictionaryOpenHelper extends SQLiteOpenHelper{ public static final String DABASENAME = "dictionary"; private static final int DATABASE_VERSION = 1; pri
2014-05-02 23:48:06
924
原创 android数据存储_外部存储
外部存储并不是一定可以访问的,例如外部存储挂载到电脑上是,或者是SD Card作为外部存储,被移除是,因此在访问外部存储时,一定要保证外部存储是可以获得的。判断外部存储是否已经挂载到了手机上可以这样判断: //判断外部存储是否可以访问,并且可以读写 private boolean isExternalStorageWritable() { St
2014-05-02 23:43:10
846
原创 android数据存储_内部存储
你可以直接存储数据到内部存储中,默认情况下,文件存储到内部存储中是私有的,不能被 其他程序访问,当卸载应用程序,这些文件会被移除。 创建并写入数据可以有两种方法:使用java中的相关的方法,使用android.content中的相关方法, 调用 openFileOutput(),并返回FileOutputStream对象调用FileOutputStream对象的wr
2014-05-01 23:38:24
783
原创 android数据存储_SharedPreferences
对于相对较少键值对的数据集合可以使用SharedPreferences来进行存储, 键值对的数据类型基本上是基本数据类型, 常见的操作:创建新的shared preference文件或者访问已经存在的shared preference, 可以使用getSharedPreferences()或者getPreferences() getSharedPreferences()
2014-05-01 23:29:06
701
原创 android数据存储_概述
andorid提供了六种方式存储永久的数据,根据需求来使用不同的存储方式,例如是否对于应用程序时私有还是公有, 数据存储的空间等。 六个存储方式:使用SharedPreferences:这种方式是使用键值对来存储私有的数据内部存储:在设备的内存中存储私有数据外部存储:在SD卡或其他的外部存储来存储公有数据SQLite数据库:在私有的数据库中存储私有的结构花数据网络存储:
2014-05-01 23:13:53
707
原创 Activity Test1
Acitivty测试的API的父类是InstrumentationTestCase,这个类能够获取Instrumentation,来操作Activity。对于activi测试,InstrumentationTestCase提供了下面三个功能:生命周期的控制:使用Instrumentation,您能控制activity的生命周期Dependency injection:
2014-04-20 23:49:46
1271
2
原创 ActionBar总结2_自定义action bar的样式
主要内容:Customize the Background更改action bar的字体颜色Customize the Tab IndicatorOverlaying the Action BarCustomize the Background显示效果图: 实现:在styles中定义用于
2014-04-15 16:32:53
1738
原创 支持不同的设备
例子见资源(不需要现在积分) 支持多国语言为了让应用支持多种语言,在res/目录下添加相应的values目录,定义方式为values- 查看iso country code 点我,记得使用的是A 2. 如果定义正确,可以点击相应values下的strings,会看到是这样的: 有国旗,o(∩∩)o…哈哈,就是这么回事。你知道我国的资源怎么定义吗?
2014-04-15 15:11:00
575
原创 ubuntu下android手机动态显示在桌面上
用USB连接手机(手机设置成usb调试模式wangfei@wangfei-ThinkPad-Edge:~$ lsusb Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Ra
2014-04-13 22:53:03
1113
原创 arm驱动程序——按键程序6_互斥—信号量(韦东山的视频总结及针对linux-2.6.30)
信号量实现互斥的一个方法。只有得到信号量的进程才能执行临界区的代码,当得不到信号量时,进程会进入休眠等待状态。用到的函数,结构体及其他:/*定义并初始化信号量*/DECLARE_MUTEX(name)/*获得信号量,此时进程处于D状态, *进程处于睡眠状态,但是此刻进程是不可中断的。 *不可中断,指的并不是CPU不响应外部硬件的中断,而是指进程不响应异步信号。
2013-06-11 20:50:12
1144
原创 arm驱动程序——按键程序6_互斥1—原子操作(韦东山的视频总结及针对linux-2.6.30)
互斥:指一个执行单元在访问共享资源的时候,其他的执行单元被禁止。所谓的原子操作一般是由多步组成的操作,执行过程中不会被其它的代码操作打断,从而实现互斥。用到的函数,结构体及其他:/*用于设置原子变量的值*/ATOMIC_INIT(i)/*对原子变量自增,并测试是否为0 *v:原子变量的地址*/atomic_dec_and_test(v)/*原子变量增加1 *
2013-06-11 15:57:17
1138
原创 arm驱动程序——按键程序5_异步通信(韦东山的视频总结及针对linux-2.6.30)
目的: 应用程序睡眠,当按下键时驱动程序 通知 应用程序去读取, 异步通知: 1.谁注册信号处理函数,怎么注册 2.谁发信号 怎么发 3.发给谁1.应用程序 注册信号处理函数 定义信号处理函数例如定义了my_signal_fun,
2013-06-11 12:47:38
1234
原创 arm驱动程序——按键程序4_poll(韦东山的视频总结及针对linux-2.6.30)
poll机制分析在以前的都有说明了,要是不理解可以看poll机制 测试程序中都是用while(1)死循环查询,而利用poll函数可以睡眠固定时间,然后返回,也可以发生中断时唤醒要在测试程序中用poll函数时,必须驱动程序有poll。用到的函数及结构体:/*file_operations中定义的,具体定义时给予具体的函数名和参数*/unsigned int (*poll) (s
2013-06-09 21:30:26
1018
原创 arm驱动程序——按键程序3_定时器消抖(韦东山的视频总结及针对linux-2.6.30)
按键利用定时器消抖:1.定义timer_list结构体的变量。2.初始化定时器,3.增加定时器,启动定时器。所用到的结构体和函数等:/*初始化时一般设置,expires,function,data*/struct timer_list { /*定时器列表*/ struct list_head entry; /*定时器的到期时间,是jiffies
2013-06-08 19:38:55
1998
原创 arm驱动程序——按键程序2(韦东山的视频总结及针对linux-2.6.30)
用到的结构及,函数及其他:/*用于产生一个等待队列的头文件,定义在wait.h中*/#define DECLARE_WAIT_QUEUE_HEAD(name) \ wait_queue_head_t name = __WAIT_QUEUE_HEAD_INITIALIZER(name)/*pin;所要获取的引脚*/unsigned int s3c2410_gpio
2013-06-05 20:12:26
1261
原创 arm驱动程序——按键程序1(韦东山的视频总结及针对linux-2.6.30)
按键程序是以中断方式写的,至于中断的内核相关的知识看中断框架和注册一节,所用到的函数和结构:/*用来注册中断*//*irq:中断号,handler:中断处理函数,flags:中断触发方式, *name:中断名字,dev:用来传给中断函数的*/static inline int __must_checkrequest_irq(unsigned int irq, irq_han
2013-06-03 21:46:17
766
原创 arm驱动程序——点亮led-利用次设备号(韦东山的视频总结及针对linux-2.6.30)
主设备号标识设备对应的驱动程序;而次设备号则用来标识同一类设备中的某个唯一的设备。利用到的函数及结构在上面几节中都有说出,在此不再叙述。驱动设备: #include #include #include #include #include #include #include #include #include #include
2013-06-01 17:39:34
1298
原创 arm驱动程序——点亮led(韦东山的视频总结及针对linux-2.6.30)
上面两节只是驱动程序的框架,下面就是点亮led了。目的:点亮led步骤: 1.写框架。 2.完善硬件相关操作。a.看原理图b.看2440手册c.写代码下面是所用到的函数及结构:/*由于用户空间中的指针,数据不能直接使用要用下面两个函数进行操作*//* 从用户空间得到数据,to:内核空间;from:用户空间;n:复制的数据长度*/copy_fr
2013-05-30 16:54:42
916
原创 arm驱动程序——自动创建设备节点 (韦东山的视频总结及针对linux-2.6.30)
mdev机制根据/sys/下的系统信息来创建设备节点。自动创建节点的步骤:1.入口函数中: a.创建一个类。 b.在类下面创建一个设备。2.出口函数中: a.注销类下的设备。 b.销毁类。下面是所用的函数及结构: 定义类 static struct class *first_alloc_class; 定义类下的设
2013-05-30 10:37:14
1018
原创 arm驱动程序——手动设备节点 (韦东山的视频总结及针对linux-2.6.30.4)
驱动学的越到感觉知识越乱,从头开始理清。下面是看韦东山老师的视频总结的:写驱动程序主要是搞清楚驱动的框架,下面是写驱动的步骤:1. 写驱动的读写等函数,一般应用程序用到哪些就写哪些 。2. 2.1 定义一个file_operations结构体。 2.2 注册,就是把file_operation结构体告诉内核,使用register_chrdev函数.3. 谁
2013-05-29 16:07:27
793
原创 输入服务子系统实例分析(韦东山的视频总结及针对linux-2.6.30.4)
根据韦东山视频讲解,和自己理解总结的:1.分配一个input_dev结构体,2.设置input_dev。3.注册input_dev结构体。4.硬件相关的操作。/*参考/keyboard/corgikbd.c*/static int __init corgikbd_init(void){ return platform_driver_register(&corg
2013-05-26 15:19:58
680
原创 输入服务子系统框架代码分析(韦东山的视频总结及针对linux-2.6.30.4)
自己的总结有错误请评论,我们共同进步。static struct input_handler *input_table[8];/*入口函数*/static int __init input_init(void){ /*注册 *#define INPUT_MAJOR 13 *主设备号为13 */ err =
2013-05-25 21:34:46
1092
原创 linux中断机制及中断注册2(韦东山的视频总结及针对linux-2.6.30.4)
自己的总结有错误请评论,我们共同进步中断注册使用函数request_irq来注册,request_irq究竟做了什么,下面来分析: 以注册外部中断1 触发方式是双边沿 为例request_irq(IRQ_EINT1,buttons_irq,IRQ_TYPE_EDGE_BOTH,"s1",1);request_irq(unsigned int ir
2013-05-19 17:06:32
1005
原创 linux中断机制及中断注册1(韦东山的视频总结及针对linux-2.6.30.4)
自己的总结有错误请评论,我们共同进步。下面的以天嵌 用户模式下 按下按键k1 产生中断EINT1为例进行分析的,内核代码只是摘录中断相关的。下面为流程图,traps.c中early_trap_init(void)被用来设置各种异常向量,通俗的说就是把有关异常代码放到固定位置,当发生异常时,CPU会自动找到相关异常的代码进行执行。void __init early
2013-05-19 16:43:03
904
原创 POLL机制分析(韦东山的视频总结及针对linux-2.6.30.4)
此为部分内核代码。应用程序的poll -> sys_poll -> do_sys_poll -> (poll_initwait,和do_poll)应用程序的部分代码:int main(int argc,char **argv){ int fd; int val=1; unsigned char key_val;
2013-05-16 16:16:25
792
ActionBarExample
2014-04-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人