- 博客(41)
- 收藏
- 关注
原创 android键值传递
一、kernel/include/linux/input.h#define KEY_HOME 102二、kernel/arch/arm/mach-rk30/board-rk30-sdk.c{ .desc = "home", .code = KEY_HOME,
2015-12-18 10:48:56
1148
原创 移植NFC驱动到android系统
1>>>进入kernel目录,替换driver层文件:kernel/drivers/nfc/pn544.ckernel/include/linux/nfc/pn544.h更新nfc目录下得Makefile喝Config2>>>将Firmware复制到device/rockchip/rk3066下3>>>修改device/rockchip/rk3066/rk3066.
2015-12-18 10:46:22
9093
原创 如何将jdk1.8降到jdk1.6
java是从jdk1.7的时候才开始提供MAC OS版本的idk,想下载jdk1.6,需要从苹果网站下载https://support.apple.com/kb/DL1572?locale=zh_CN,此处需注意,要切换语言到English,下载英文版本进入到/Library/Java/JavaVirtualMachines,执行下面的操作:cp -rf/Library/Java/JavaVi
2015-12-18 10:42:19
8941
原创 Android 编译环境创建
1. 安装Ubuntu操作系统2. 安装编译所需要的各种包sudo apt-get install libncurses5-devsudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev l
2015-12-10 15:59:53
356
原创 美团云创建用户名和工作区
在美团云申请了云主机后,需要通过美团的一些策略登录到云主机(主要是一些ssh的命令)因为我的云主机OS选择的是OS,所以ssh登录上去之后是root@felix,此时需要创建我自己的用户名,有自己的工作区所以先创建自己的用户:adduser liuxiang这条命令会创建自己的目录,但是我们的云硬盘是挂载到了/data下面,首先我先让我的用户名获得执行sudo命令的权利,操作如下
2015-12-10 15:23:19
711
转载 linux 下文件加密压缩和解压的方法
关闭方法一:用tar命令 对文件加密压缩和解压压缩:[html] view plaincopytar -zcf - filename |openssl des3 -salt -k password | dd of=filename.des3 此命令对filename文件进行加码压缩 生成filena
2015-12-01 14:47:28
777
转载 Android dumpsys 命令解析
Android has an interesting command called dumpsys to dump some system information. Even described on adb manual I think that some points should be reinforced. In order to get the complete status j
2015-11-21 19:39:45
439
转载 Monkey测试简介
shell, monkey, system, Android, 文件系统Monkey, 示例, 简介一、Monkey测试简介Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压 力测试,检测程序多久的时间会发生异常。 二、Monkey程序介绍1) Monkey程序由And
2015-11-04 19:10:26
315
原创 android studio如何做JNI开发
1. 创建工程,本次示例采用了默认设置下一步下图是生成的Project目录结构2. 在src/main/java下创建一个Class NdkJniUtils.java,在该类中添加本地Native函数添加本地native函数:public class NdkJniUtils { public static native String
2015-10-10 13:43:00
513
转载 NDK-JNI实战教程(一) 在Android Studio运行第一个NDK程序
NDK开发,其实是为了项目需要调用底层的一些C/C++的一些东西;另外就是为了效率更加高些。如果你在Eclipse+ADT下开发过NDK就能体会到要么是配置NDK还要下载Cygwin, 配置Cygwin ,然后需要编译生成,相当的蛋疼。要么是直接用Eclipse开发,但是前期配置也是一堆;真心蛋疼。但是现在在AS上Eclipse能做到的这边都OK,这边有的Eclipse 上没有的,而且Google
2015-10-09 14:39:10
311
转载 linux常用头文件
2.6.30.4的头文件的位置和2.6.25.8的不一样,除去内核源码下的include目录外,在arch/arm/mach-s3c2410/和arch/arm/plat-s3c24xx/目录下都有include目录的。#include /* printk() *///#include /* kmalloc() *///#include /*
2015-08-26 17:25:21
289
转载 LCD调试
LCD调试: 虽然我们多数驱动人员最开始都是从调试LCD开始入手的,但准确来说,LCD算是外设当中最难调试的东西了,之所以这么说,是因为LCD涉及到的接口类型和各种显示问题最多了。其中有CPU接口、RGB和Mipi之类的接口。那么,遇到这些接口怎么办? 其实我们现在的调试LCD,算是很表层的,没有深入的去学习接口的类型,各种控制信号的作用,换一个接口很
2015-05-27 11:37:04
3046
转载 i2c_check_functionality函数的实现
下面再来讨论下前面一章中i2c_probe函数中调用的i2c_check_functionality函数的实现。I2c_probe函数中有这样一段: /* Stop here if we can't use SMBUS_QUICK */ if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_QUICK)) {
2015-05-19 19:43:52
9203
转载 Android睡眠唤醒机制--Kernel态
一、简介 Android系统中定义了几种低功耗状态:earlysuspend、suspend、hibernation. 1) earlysuspend: 是一种低功耗的状态,某些设备可以选择进入某种功耗较低的状态,比如 LCD可以降低亮度或灭掉; 2) suspend: 是指除电源管理以外的其他外围模块以及cpu均不工作,只有内存保持自刷新的状态
2015-05-12 15:29:54
862
转载 Android (Linux) Suspend流程
1. Linux Suspend简介 Linux Suspend主要有以下三步: 1) 冻结用户态进程和内核态任务 2) 调用注册的设备的suspend的回调函数,顺序是按照注册顺序 3) 休眠核心设备和使CPU进入休眠态。 冻结进程(suspend_freeze_processes)是内核把进程列表中所有的进程的状态都设置为停止,并且保存所有
2015-05-12 14:49:18
756
转载 Linux 驱动的打印方法
Linux printkprintk( ) 函数中可以指定日志的级别。#define KERN_EMERG "" /* system is unusable */#define KERN_ALERT "" /* action must be taken immediately */#define KERN_CRIT ""
2015-05-07 11:33:04
2284
原创 电量计max17048移植记录
从第一次选定maxium17048到移植成功折腾了不少时间,这期间也对相关模块逐个熟悉起来,再次记录,以供后续参考。1. 最开始,FAE提供了max17048的驱动文件,只有一个C文件,这个文件实现了读取电量计寄存器中SOC, vcell等功能。下面是设备结构体。struct max17049_chip {struct i2c_client*client;struct
2015-04-01 15:13:18
3663
2
转载 Linux内核module_param的使用
1.定义模块参数的方法:module_param(name, type, perm);其中,name:表示参数的名字; type:表示参数的类型; perm:表示参数的访问权限; 2. 数组类型模块参数的定义:用逗号间隔的列表提供的值;声明一个数组参数:module_param_array(name, type, num, p
2015-03-31 10:05:44
413
转载 android如何手动生成设备节点
init.rc里所有可用的command都定义在system/core/init/keyword.h里,默认是不包含mknod的。事实上,Android的init进程会通过kenel的uevent来自动创建设备节点(见system/core/init/devices.c里的make_device()函数)。如果你希望手动调用mknod, 我想你可以1. 仿照make_device(),
2015-03-20 16:43:13
1119
转载 Android如何生成设备节点
Android 与linux一样使用设备驱动来访问硬件设备,设备节点文件是设备驱动的逻辑文件,应用程序使用设备节点文件来访问设备驱动程序,linux使用mknod来创建设备节点文件,Android 有自己法子。Android 使用Init 进程来创建设备节点文件,分两种情况:静态节点文件和动态节点文件,以应对已经定义好的冷插拔和系统运行起来后插入的热插拔设备。对于冷插拔设备,ini
2015-03-20 16:29:39
1468
转载 Android Studio如何同NDK集成
原文: http://ph0b.com/android-studio-gradle-and-ndk-integration/将native库(.so文件)集成到你的APK包以前的方法是把.so放到.jar包里, 现在很简单了在 src/main/ 目录下(该目录下有 java和res两个子目录), 创建一个 jniLibs 目录再创建相应ABI子目录(如 x86, mips, ar
2015-03-19 20:19:23
535
转载 android APP调用自定义java API,自定义java API调用自定义jni接口
1:在android源码目录framework/base下面创建add目录add目录里面的结构如下:里面的Nadd.java android_jnitest_Nadd.cpp 和Android.mk内容如下:Nadd.java[java] view plaincopyprint?package
2015-03-17 10:43:57
1618
转载 Android 的 KeyEvent : 從 EventHub 到 PhoneWindowManager
最近追蹤了一下 Android 4.3 的 source,並且追蹤了 KeyEvent 一路從 EventHub.cpp 到 PhoneWondowManager.java 的流程這邊順便記錄一下。Android 在 Linux kernal 的部份,所有的 Input Event 都會使用 /dev/input/event0~X 的 device node要 Monitoring
2015-03-12 10:44:33
1208
转载 I2C设备,读写地址换算
I2C设备的写地址 = I2C设备地址 I2C设备的读地址 = (I2C设备地址 例如:#define MAX_17040_BATTERY_I2C_ADDR (0x36)#define MAX_17040_BATTERY_WRITE_ADDR (MAX_17040_BATTERY_I2C_ADDR #define MAX_1704
2015-03-04 11:46:30
1186
转载 各种总线match匹配函数
当向linux系统总线添加设备或驱动时,总是会调用各总线对应的match匹配函数来判断驱动和设备是否匹配,这些match函数之间都存在一定的差异,本文先对常用的match匹配函数进行讲解,以后会陆续添加新的内容。 一. 驱动和设备匹配过程常用数据结构1. of_device_idstruct of_device_id{charname[32];c
2015-02-28 10:59:28
802
转载 Android编译系统makefile(Android.mk)写法
Android编译系统的makefile文件Android.mk写法如下(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式:LOCAL_PATH:=$(call my-dir)上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径。(2)A
2015-02-26 11:08:33
373
转载 LINUX I2C模型 RTC模型 详细分析
注意:1. LINUX-2.6.20的内核2. CPU是AT91SAM92603. PCF8563的I2C驱动 大体过程:1. 为什么内核要有这么多模型2. platform总线、设备、驱动模型,简单的介绍3. I2C模型所涉及到的程序文件位置及简介4.
2015-02-25 16:21:55
564
转载 Linux内核中的platform机制
从Linux 2.6起引入了一套新的驱动管理和注册机制:platform_device和platform_driver。Linux中大部分的设备驱动,都可以使用这套机制,设备用platform_device表示,驱动用platform_driver进行注册。Linux platform driver机制和传统的device driver 机制(通过driver_register函数进行注册
2015-02-25 16:01:09
405
转载 opendir 、readdir 小结
1. opendir()头文件 #include #include 函数原型 DIR* opendir (const char * path ); (获取path子目录下的所由文件和目录的列表,如果path是个文件则返回值为NULL)功能 打开一个目录,在失败的时候返回一个空的指针。返回值(DIR)
2015-01-14 15:05:50
409
转载 recovery输入事件及处理分析
代码是基于android4.1的。1recovery输入事件及处理分析1.1时序图support touch" name="image_operate_43411352383662625" alt="Recovery support touch" src="http://s12.sinaimg.cn/mw690/89f592f5gcdfc5adec1eb&690" widt
2015-01-14 13:58:44
1025
转载 Linux cpufreq 机制了解
随着 energy efficient computing 和 performance per watt 等概念的推广以及高级配置与电源接口ACPI(Advanced Configuration and Power Interface)标准的发展,目前市场上的主流 CPU 都提供了对变频(frequency scaling)技术的支持。例如Intel®处理器所支持的 Enhanced SpeedS
2015-01-12 20:38:32
658
转载 linux内核input子系统解析
Android、X windows、qt等众多应用对于linux系统中键盘、鼠标、触摸屏等输入设备的支持越来越倾向于标准的input输入子系统。包括我们要分析的条形码和二维码扫描枪,它们只是模拟了键盘输入,走了Input输入子系统的流程。一、input输入子系统框架(截图来源于网络)下图是input输入子系统框架,输入子系统由输入子系统核心层( Input Core ),驱动层和事
2015-01-04 14:46:40
746
转载 关于struct device_driver结构中的probe探测函数的调用
用SourceInsight跟踪:从driver_register看起,此处我的这里是:int driver_register(struct device_driver * drv){if ((drv->bus->probe && drv->probe) || (drv->bus->remove && drv->remove) || (drv->bus->s
2014-12-30 17:25:11
467
转载 如何查看USB方式连接Android设备的外接设备信息
1,USB存储设备(如:U盘,移动硬盘): //USB存储设备 插拔监听与 SD卡插拔监听一致。 private USBBroadCastReceiver mBroadcastReceiver; IntentFilter iFilter = new IntentFilter(); iFilter.addAction(Intent.ACTION_MED
2014-12-26 14:27:17
1828
转载 linux下的I2C驱动记录
现在做的是RK平台的I2C驱动,不是说linux每个外设对应一个设备文件吗?可是找了一下一直没找到,今天特别搞了一下。I2C设备是注册为platform平台驱动的。下面是我用adb命令查看的linux的设备文件不一定只在dev/这个目录下面,像sys/ 目录下面也会有一些设备文件的MID下面的I2C设备的设备文件1|root@android:/ # ls sys
2014-12-23 15:52:45
699
转载 将新的驱动源文件添加进android内核进行编译
1,同目录下的makefile,如## Makefile for industrial I/O Magnetometer sensors#obj-$(CONFIG_SENSORS_AK8975) += ak8975.oobj-$(CONFIG_SENSORS_HMC5843) += hmc5843.o 2,同目录下的kcon
2014-12-20 19:13:41
697
转载 android的m、mm、mmm编译命令的使用
android源码目录下的build/envsetup.sh文件,描述编译的命令- m: Makes from the top of the tree. - mm: Builds all of the modules in the current directory. - mmm: Builds all of the modules in the su
2014-12-20 18:58:30
1184
转载 Linux Kconfig及Makefile学习
内核源码树的目录下都有两个文档Kconfig (2.4版本是Config.in)和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单。在内核配置make menuconfig时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文档中。在内核编译时,主Makefile调用这个.config,
2014-12-17 14:13:39
433
转载 MISC混杂设备 struct miscdevice /misc_register()/misc_deregister()
在Linux系统中,存在一类字符设备,他们共享一个主设备号(10),但此设备号不同,我们称这类设备为混杂设备(miscdeivce),查看/proc/device中可以看到一个名为misc的主设备号为10.所有的混杂设备形成一个链表,对设备访问时内核根据次设备号找到对应的miscdevice设备。相对于普通字符设备驱动,它不需要自己去生成设备文件。Linux内核使用struct miscd
2014-12-17 13:37:56
480
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人