- 博客(45)
- 资源 (4)
- 收藏
- 关注
转载 adb remount 失败:remount failed: Operation not permitted
执行adb remount的时候失败了,提示remount failed: Operation not permitted
2014-07-04 10:57:02
1597
原创 关于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
4117
原创 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
2953
转载 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
3532
转载 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
840
原创 动态加载USB Audio Device
工作中遇到的问题,需要把编译在内核中的USB Audio单独编译为模块,然后在使用过程中动态加载。应用逻辑是,当2.4G空鼠端插入耳机,即发送F1键按键消息,加载usb audio驱动模块,拔出就发送F2,卸载usb audio驱动模块。
2013-11-18 17:03:56
3846
转载 HDMI EDID格式解析
现在的显示设备比如显示器,电视等都HDMI接口,那通常每个HDMI接口都保留有一份EDID数据,这个数据可以存在程序里面由系统启动过程中来初始化,更常见的做法是每个HDMI口会有一个EEPROM来保存这份数据,这个EEPROM也只是有256bytes大小。外接设备如DVD播放器在HDMI热插拔的时候就会通过HDMI的DDC通道来读取EDID数据。EDID里面主要是定义了这显示设备所支持的图像分辨率
2013-11-16 10:54:00
8884
转载 Jni中C++和Java的参数传递
如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jni不甚了解,不知道Jni是做什么的,如何建立一个基本的jni程序,或许可以参考下面下面这些文章:利用VC++6.0实现JNI的最简单的例子 JNI入门教程之HelloWorld篇 SUN JNI Tutorial这些资料的例子中,大多数只是输入一些简单的参数,获取没有参数。而在实际的使用过程中,往往需要对参数进行
2013-11-16 10:39:29
1187
转载 Android recovery 下删除第一次启动后的痕迹
在Aandroid系统启动后,Android系统会把APK的资源文件解压到系统的/data/app; 启动OOBE(开机设置程序);第一次启动与通常的启动是不同的。 在工厂生产系统时,为了测试产线的设备,必须需要开机测试。但是一但启动系统,产品到客户手中就不是第一次启动了。如果重新烧写系统,又比较耗费时间。为了解决这个矛盾,需要在生产线上,开机测试后清除第一次启动痕迹。基本的方法如
2013-11-16 10:34:36
4173
转载 _IO, _IOR, _IOW, _IOWR 宏的用法与解析
今天在写字符驱动验证程序的时候要用到ioctl函数,其中有一个cmd参数,搞了半天也不了解是什么意思,那个cmd还有什么命令码了什么的,还好google下,觉得这篇文章写的不错,就转来看看:在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:
2013-11-13 11:08:21
1102
转载 Linux常用命令
系统相关显示机器的处理器架构(1) arch显示机器的处理器架构(2) uname -m显示正在使用的内核版本 uname -r 显示硬件系统部件 - (SMBIOS / DMI) dmidecode -q罗列一个磁盘的架构特性 hdparm -i /dev/hda在磁盘上执行测试性读取操作 h
2013-11-12 14:49:36
950
原创 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
5104
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
965
原创 模拟按键消息
在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
4472
转载 android中打印函数调用栈、内存使用、屏幕分辨率
1、 打印当前函数调用栈 java.util.Map ts = Thread.getAllStackTraces(); StackTraceElement[] ste = ts.get(Thread.currentThread()); for (StackTraceElement s :
2013-10-22 14:39:19
1971
原创 Android音频系统探究——从SoundPool到AudioHardware
实际工作中遇到的问题,一个bug引发的思考,找到从App到Framework再到Audio HAL的通路。通过学习Android音频系统,定位出问题的层次。这是一次如何积累经验的记录。
2013-10-19 17:24:18
4990
原创 GPIO模拟SPI通讯接口
一、什么是SPI SPI 是一种允许一个主设备启动一个与从设备的同步通讯的协议,从而完成数据的交换。也就是说,SPI是一种规定好的通讯方式。这种通信方式的优点是占用端口较少,一般4根就够基本通讯了。同时传输速度也很高。一般来说要求主设备要有SPI控制器(但可用模拟方式),就可以与基于SPI的芯片通讯了。 常见的SPI外围设备包括FLASHRAM、网络控制器、LCD显示驱
2013-10-17 18:15:58
16262
7
原创 纯收藏贴,git服务器搭建,客户端使用
以下用于收藏优快云中关于GIT版本管理工具的Blog——git服务器搭建:http://blog.youkuaiyun.com/yk_hu0621/article/details/5928145?reload#commentsgit常用命令(入门版):http://blog.youkuaiyun.com/lzb2512/article/details/9185683git
2013-10-16 12:48:23
994
原创 usb设备插入开机后无法识别问题
发现某些usb设备开机后插入可以正常使用,但是在插入状态下开机就无法识别,只能重新插拔一次设备节点才被创建。 android/system/vold/main.cpp中修改main函数,添加代码: coldboot("/sys/bus/usb/devices");
2013-10-16 12:46:45
3041
转载 JAVA基础之理解JNI原理
JNI是JAVA标准平台中的一个重要功能,它弥补了JAVA的与平台无关这一重大优点的不足,在JAVA实现跨平台的同时,也能与其它语言(如C、C++)的动态库进行交互,给其它语言发挥优势的机会。有了JAVA标准平台的支持,使JNI模式更加易于实现和使用。在此总结了下面这个知识图:实例:环境说明:ubuntu 10.4.2 LTS系统
2013-10-16 12:21:55
949
原创 Android系统广播
String ADD_SHORTCUT_ACTION 动作:在系统中添加一个快捷方式。 String ALL_APPS_ACTION 动作:列举所有可用的应用。输入:无。 String ALTERNATIVE_CATEGORY 类别:说明 activity 是用户正在浏览的数据的一个可选操作。 String ANSWER_ACTION 动作:处理拨入的电话。 Str
2013-10-15 11:45:13
927
原创 ubuntu下图形化串口调试工具 cutecom
有时候需要通过串口收发十六进制数据,使用minicom就不是那么方便,于是转用cutecom。首先从ubuntu软件中心下载安装cutecom。安装完成后,在命令行中输入cutecom,打开界面。串口访问需要root权限的,要输入sudo cutecom,否则会出现cutecom打不开串口的情况。界面很简单:我们在实际使用的时候,大部分都用了USB转串口。也就是ttyUSB*。
2013-10-11 12:30:12
10101
原创 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
1345
原创 编译错误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
3600
原创 模拟按键消息
在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
904
转载 Android自带的toolbox分析及扩展
转自:http://blog.youkuaiyun.com/a345017062/article/details/6250619折腾了几天,被Android那点儿少得可怜的shell命令折磨的死去活来,终于下定了革命的决心。看一下怎么把渺小的toolbox替换成伟大的busybox吧。先大致描述一下Android系统中的shell程序部分。shell实现分为两部分:一、shell解
2013-07-26 10:42:07
843
原创 android开机logo分析和优化
android系统中,有两处可以做logo的打印。第一处是在kernel中,显示设备初始化完毕后,会将一个ppm图片复制到fb中;第二处是在android boot阶段,将一个rle格式的图片解压缩到fb中。下面将分析图像格式和logo显示的相关代码,方便我们根据自己产品的需要,选择合适的logo显示方式。
2013-07-22 18:23:55
2510
原创 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
1994
原创 Android平台中MCE USB设备支持
应用程序需要对MCE Usb设备进行操作。首先使用UsbManager的getDeviceList接口获取USB设备列表时,引发PackageManager.PERMISSION_DENIED异常。 应用程序的确已经在AndroidManifest.xml中声明了所需的权限,所以从Framework层找问题的原因。 首先看out目录下/system/etc/permissions,发现缺
2013-07-19 16:46:36
2048
转载 往android的内核添加驱动及ueventd.rc 修改
向android的内核添加驱动,其实就是向linux内核添加驱动。主要在两个文件里添加点信息,一个是Kconfig文件,一个是Makefile文件。比如你添加的驱动你代码放到drivers目录下面的XXX目录,那么修在该目录下的Kconfig文件和Makefile文件。具体的修改方法:比如我现在修改drivers/staging/android/下的Kconfig文件。co
2013-07-19 09:48:18
1412
转载 android init.rc中的service
android的init进程初始化的时候,除了对系统作一些必要的初始化外,就是启动service了。而service是定义在init脚本中的,故很有必要了解一下,init中对service的处理。struct service 该数据结构保存了和service相关的信息。service下可以定义option,这些option被保存在这个结构体中;除此之外还保存了service的
2013-07-17 15:05:55
5145
转载 linux下串口工具minicom使用
系统环境:ubuntu destop 11.10我当时的需要主要是两个,能够看到正常串口输出,并且把串口内容实时输出到文件中 那接下来工作主要是两个:1、安装 2、配置相信各位也都是至少会操作一些全令行的,我们在这里用apt-get安装(不会的同学请google一下) 1、安装 sudo apt-get install minicom
2013-07-17 11:43:07
1204
转载 Ubuntu下将VIM改造成IDE
本文转自http://blog.sina.com.cn/s/blog_7745fc86010147h6.html摘自http://blog.youkuaiyun.com/wooin/article/details/1858917,和http://kelaocai.iteye.com/blog/105853首先我们安装vim编辑器,可以选用直接sudo apt-get install vim
2013-07-17 11:41:36
1184
转载 Android设备目录和节点的创建
在编写linux设备驱动程序的时候,很多时候都是利用mknod命令来手动创建设备节点的,带上名字和主次设备号就可以在/dev目录下生成设备节点。同样Android沿用了linux内核,很多设备驱动的节点是又是什么时候创建的呢? 在kernel自解压模块加载完成之后,会去运行android第一个应用程序init。在init.c的main函数中。System/core/init/i
2013-07-10 11:23:40
1678
原创 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
1918
原创 增加按键音
在frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java中的interceptKeyBeforeDispatching函数中增加以下:if(!down){ AudioManager am = (AudioManager)mContext.
2013-06-25 13:19:36
1182
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人