自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (4)
  • 收藏
  • 关注

转载 adb remount 失败:remount failed: Operation not permitted

执行adb remount的时候失败了,提示remount failed: Operation not permitted

2014-07-04 10:57:02 1516

原创 关于framework-res中字符串添加

在framework-res中添加字符串test_string,修改以下文件:    frameworks/base/core/res/res/values/public.xml    frameworks/base/core/res/res/values/strings.xml    编译(mmm framework/base/core/res -B),之后检验是否将test

2014-06-13 12:37:51 4013

转载 Android电池管理

本文转自:http://blog.sina.com.cn/s/blog_66a6a5ec0100n6ej.html

2014-06-12 16:33:15 1506

原创 Android Logo生成(PNG转PPM、PNG转RLE)

记录下转化方法,供自己日后查阅。pngtopnm logo_skytone_clut224.png > logo_skytone_clut224-tmp.pnmpnmquant 224 logo_skytone_clut224-tmp.pnm > logo_skytone_clut224.pnmpnmtoplainpnm logo_skytone

2014-03-27 17:59:00 2872

原创 Android中所有应用程序可申请的权限(SDK 17)

2014-03-09 01:15:40 2316

原创 service的启动控制

关于ctl.start控制service启动的源码

2013-12-28 14:47:29 2445

转载 OTA差分包制作

在make android系统后,会生成系统的img文件。make otapackage 会生成sd卡用的全部系统升级包,有260M多。要生成增量升级包。需要按以下步骤。mkdir ~ /OTA source build/envsetup.sh; choosecom 1 1 7 engmake;make otapackage先将编译生成的

2013-12-23 15:06:47 3469

转载 Linux下压缩解压命令

.tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz 和 .tgz解压:tar z

2013-12-20 11:08:59 769

原创 动态加载USB Audio Device

工作中遇到的问题,需要把编译在内核中的USB Audio单独编译为模块,然后在使用过程中动态加载。应用逻辑是,当2.4G空鼠端插入耳机,即发送F1键按键消息,加载usb audio驱动模块,拔出就发送F2,卸载usb audio驱动模块。

2013-11-18 17:03:56 3651

翻译 程序猿十大电影盘点

骇客帝国、盗梦空间、源代码、死神来了、恐怖油轮、云图……这些电影在表达哪些程序理念,程序猿,你知道吗?

2013-11-18 16:33:16 1866

转载 HDMI EDID格式解析

现在的显示设备比如显示器,电视等都HDMI接口,那通常每个HDMI接口都保留有一份EDID数据,这个数据可以存在程序里面由系统启动过程中来初始化,更常见的做法是每个HDMI口会有一个EEPROM来保存这份数据,这个EEPROM也只是有256bytes大小。外接设备如DVD播放器在HDMI热插拔的时候就会通过HDMI的DDC通道来读取EDID数据。EDID里面主要是定义了这显示设备所支持的图像分辨率

2013-11-16 10:54:00 8608

转载 Jni中C++和Java的参数传递

如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jni不甚了解,不知道Jni是做什么的,如何建立一个基本的jni程序,或许可以参考下面下面这些文章:利用VC++6.0实现JNI的最简单的例子 JNI入门教程之HelloWorld篇 SUN JNI Tutorial这些资料的例子中,大多数只是输入一些简单的参数,获取没有参数。而在实际的使用过程中,往往需要对参数进行

2013-11-16 10:39:29 1125

转载 Android recovery 下删除第一次启动后的痕迹

在Aandroid系统启动后,Android系统会把APK的资源文件解压到系统的/data/app; 启动OOBE(开机设置程序);第一次启动与通常的启动是不同的。 在工厂生产系统时,为了测试产线的设备,必须需要开机测试。但是一但启动系统,产品到客户手中就不是第一次启动了。如果重新烧写系统,又比较耗费时间。为了解决这个矛盾,需要在生产线上,开机测试后清除第一次启动痕迹。基本的方法如

2013-11-16 10:34:36 4108

转载 _IO, _IOR, _IOW, _IOWR 宏的用法与解析

今天在写字符驱动验证程序的时候要用到ioctl函数,其中有一个cmd参数,搞了半天也不了解是什么意思,那个cmd还有什么命令码了什么的,还好google下,觉得这篇文章写的不错,就转来看看:在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:

2013-11-13 11:08:21 1056

转载 Linux常用命令

系统相关显示机器的处理器架构(1) arch显示机器的处理器架构(2) uname -m显示正在使用的内核版本 uname -r 显示硬件系统部件 - (SMBIOS / DMI) dmidecode -q罗列一个磁盘的架构特性 hdparm -i /dev/hda在磁盘上执行测试性读取操作 h

2013-11-12 14:49:36 908

原创 android游戏手柄问题

新产品(一款android智能机顶盒)需要支持2.4G无线游戏手柄,这款游戏手柄是一个接收头、双手柄的配置。对游戏手柄一无所知,从头开始研究。    先用ubuntu调试。先把2.4g接收头插入PC上的usb接口,dmesg发现这是个hidraw设备,有两个设备节点被创建了:/dev/input/js0,/dev/input/js1。google下“linux游戏手柄驱动”,果然发现大把示例代

2013-11-12 14:39:50 4888 1

转载 Ubuntu下配置samba实现文件夹共享

一. samba的安装:sudo apt-get insall sambasudo apt-get install smbfs二. 创建共享目录:mkdir /home/phinecos/sharesodu chmod 777 /home/phinecos/share三. 创建Samba配置文件:1. 保存

2013-10-30 20:44:15 880

原创 模拟按键消息

在android 4.0及之前版本上,模拟按键消息的接口可以用反射机制获取到:long now = SystemClock.uptimeMillis();KeyEvent down = new KeyEvent(now, now, KeyEvent.ACTION_DOWN, keyCode, 0);IWindowManager.Stub.asInterface(ServiceManag

2013-10-30 20:38:54 4400

转载 android中打印函数调用栈、内存使用、屏幕分辨率

1、 打印当前函数调用栈                java.util.Map ts = Thread.getAllStackTraces();                StackTraceElement[] ste = ts.get(Thread.currentThread());                for (StackTraceElement s :

2013-10-22 14:39:19 1900

原创 Android音频系统探究——从SoundPool到AudioHardware

实际工作中遇到的问题,一个bug引发的思考,找到从App到Framework再到Audio HAL的通路。通过学习Android音频系统,定位出问题的层次。这是一次如何积累经验的记录。

2013-10-19 17:24:18 4803 1

原创 GPIO模拟SPI通讯接口

一、什么是SPI    SPI 是一种允许一个主设备启动一个与从设备的同步通讯的协议,从而完成数据的交换。也就是说,SPI是一种规定好的通讯方式。这种通信方式的优点是占用端口较少,一般4根就够基本通讯了。同时传输速度也很高。一般来说要求主设备要有SPI控制器(但可用模拟方式),就可以与基于SPI的芯片通讯了。    常见的SPI外围设备包括FLASHRAM、网络控制器、LCD显示驱

2013-10-17 18:15:58 15168 7

原创 纯收藏贴,git服务器搭建,客户端使用

以下用于收藏CSDN中关于GIT版本管理工具的Blog——git服务器搭建:http://blog.csdn.net/yk_hu0621/article/details/5928145?reload#commentsgit常用命令(入门版):http://blog.csdn.net/lzb2512/article/details/9185683git

2013-10-16 12:48:23 964

原创 usb设备插入开机后无法识别问题

发现某些usb设备开机后插入可以正常使用,但是在插入状态下开机就无法识别,只能重新插拔一次设备节点才被创建。    android/system/vold/main.cpp中修改main函数,添加代码:    coldboot("/sys/bus/usb/devices");

2013-10-16 12:46:45 2919

转载 JAVA基础之理解JNI原理

JNI是JAVA标准平台中的一个重要功能,它弥补了JAVA的与平台无关这一重大优点的不足,在JAVA实现跨平台的同时,也能与其它语言(如C、C++)的动态库进行交互,给其它语言发挥优势的机会。有了JAVA标准平台的支持,使JNI模式更加易于实现和使用。在此总结了下面这个知识图:实例:环境说明:ubuntu 10.4.2 LTS系统

2013-10-16 12:21:55 898

原创 Android系统广播

String ADD_SHORTCUT_ACTION 动作:在系统中添加一个快捷方式。 String ALL_APPS_ACTION 动作:列举所有可用的应用。输入:无。 String ALTERNATIVE_CATEGORY 类别:说明 activity 是用户正在浏览的数据的一个可选操作。 String ANSWER_ACTION 动作:处理拨入的电话。 Str

2013-10-15 11:45:13 884

原创 ubuntu下图形化串口调试工具 cutecom

有时候需要通过串口收发十六进制数据,使用minicom就不是那么方便,于是转用cutecom。首先从ubuntu软件中心下载安装cutecom。安装完成后,在命令行中输入cutecom,打开界面。串口访问需要root权限的,要输入sudo cutecom,否则会出现cutecom打不开串口的情况。界面很简单:我们在实际使用的时候,大部分都用了USB转串口。也就是ttyUSB*。

2013-10-11 12:30:12 9964 1

原创 git常用命令(对付差记性,不断更新的笔记)

生成补丁使用git format-patch常用参数——# git format-patch -M master         // 当前分支所有超前master的提交# git format-patch -s hash_code    // 某次提交以后的所有patch, --hash_code指的是SHA1 ID# git format-patch -1 hash

2013-10-11 12:07:03 1304

原创 编译错误trouble writing output: Too many methods: 65544; max is 65536.

问题描述:在Framework上新增本地接口后,报出错误:trouble writing output: Too many methods: 65544; max is 65536. By package: ......该问题是由于Framework下无法容纳超过65536个接口导致的解决方法:修改frameworks\base\Andr

2013-07-26 13:46:26 3461

原创 模拟按键消息

在4.0之前版本时,模拟按键消息可以通过以下方式:long now = SystemClock.uptimeMillis();KeyEvent down = new KeyEvent(now, now, KeyEvent.ACTION_DOWN, keyCode, 0);IWindowManager.Stub.asInterface(ServiceManager.getServic

2013-07-26 13:45:03 866

转载 Android自带的toolbox分析及扩展

转自:http://blog.csdn.net/a345017062/article/details/6250619折腾了几天,被Android那点儿少得可怜的shell命令折磨的死去活来,终于下定了革命的决心。看一下怎么把渺小的toolbox替换成伟大的busybox吧。先大致描述一下Android系统中的shell程序部分。shell实现分为两部分:一、shell解

2013-07-26 10:42:07 799

原创 android开机logo分析和优化

android系统中,有两处可以做logo的打印。第一处是在kernel中,显示设备初始化完毕后,会将一个ppm图片复制到fb中;第二处是在android boot阶段,将一个rle格式的图片解压缩到fb中。下面将分析图像格式和logo显示的相关代码,方便我们根据自己产品的需要,选择合适的logo显示方式。

2013-07-22 18:23:55 2382

原创 usb设备被多次挂载问题

发现系统启动后,同一个usb设备被挂载了多次,导致文件管理器相关应用显示出现问题。usb设备挂载的流程在android/system/vold/Volume.cpp中,由Volume::mountUdiskVol函数处理。在mount前判断该设备是否已被挂载,可解决该问题:bool isUsbDeviceMounted(const char *path) { char device[2

2013-07-22 15:58:24 1927

原创 Android平台中MCE USB设备支持

应用程序需要对MCE Usb设备进行操作。首先使用UsbManager的getDeviceList接口获取USB设备列表时,引发PackageManager.PERMISSION_DENIED异常。 应用程序的确已经在AndroidManifest.xml中声明了所需的权限,所以从Framework层找问题的原因。    首先看out目录下/system/etc/permissions,发现缺

2013-07-19 16:46:36 1955 1

转载 往android的内核添加驱动及ueventd.rc 修改

向android的内核添加驱动,其实就是向linux内核添加驱动。主要在两个文件里添加点信息,一个是Kconfig文件,一个是Makefile文件。比如你添加的驱动你代码放到drivers目录下面的XXX目录,那么修在该目录下的Kconfig文件和Makefile文件。具体的修改方法:比如我现在修改drivers/staging/android/下的Kconfig文件。co

2013-07-19 09:48:18 1376

转载 android init.rc中的service

android的init进程初始化的时候,除了对系统作一些必要的初始化外,就是启动service了。而service是定义在init脚本中的,故很有必要了解一下,init中对service的处理。struct service        该数据结构保存了和service相关的信息。service下可以定义option,这些option被保存在这个结构体中;除此之外还保存了service的

2013-07-17 15:05:55 4966

转载 linux下串口工具minicom使用

系统环境:ubuntu destop 11.10我当时的需要主要是两个,能够看到正常串口输出,并且把串口内容实时输出到文件中 那接下来工作主要是两个:1、安装 2、配置相信各位也都是至少会操作一些全令行的,我们在这里用apt-get安装(不会的同学请google一下) 1、安装  sudo apt-get install minicom

2013-07-17 11:43:07 1121

转载 Ubuntu下将VIM改造成IDE

本文转自http://blog.sina.com.cn/s/blog_7745fc86010147h6.html摘自http://blog.csdn.net/wooin/article/details/1858917,和http://kelaocai.iteye.com/blog/105853首先我们安装vim编辑器,可以选用直接sudo apt-get install vim

2013-07-17 11:41:36 1125

转载 Android设备目录和节点的创建

在编写linux设备驱动程序的时候,很多时候都是利用mknod命令来手动创建设备节点的,带上名字和主次设备号就可以在/dev目录下生成设备节点。同样Android沿用了linux内核,很多设备驱动的节点是又是什么时候创建的呢?     在kernel自解压模块加载完成之后,会去运行android第一个应用程序init。在init.c的main函数中。System/core/init/i

2013-07-10 11:23:40 1559

原创 BroadcastReciever中有阻塞调用导致死机

现象: CPU占用率高,系统卡死log:  Skipped 47 frames!  The application may be doing too much work on its main thread.原因: 调用的底层接口中有阻塞:sem_wait(&_uart_state.sem);创建一个线程来运行需要处理的代码:if

2013-06-25 13:28:12 1848

原创 增加按键音

在frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java中的interceptKeyBeforeDispatching函数中增加以下:if(!down){                AudioManager am = (AudioManager)mContext.

2013-06-25 13:19:36 1142

Linux下游戏手柄驱动示例(joystick)

Linux下游戏手柄驱动,简单的一个示例

2013-09-18

MStar MMI FAQ

使用的MStar MMI疑问解答文档,可用来解决实际项目开发中的问题

2012-05-12

MTK6235 Data Sheet

MTK6235的芯片资料,要的朋友速度下载

2009-01-12

空空如也

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

TA关注的人

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