
Android
liwendovo
这个作者很懒,什么都没留下…
展开
-
Android Stagefright MPEG4Writer分析
基础知识:MP4文件格式详解http://download.csdn.net/detail/liwendovo/4970682 系统:Android4.2.1工具:mp4info,winhex,QTAtomViewerMPEG4Writer路径:Android4.2/frameworks/av/media/libstagefright/MPEG4Writer.cpp原创 2013-01-07 19:10:38 · 8264 阅读 · 1 评论 -
编译Nexus 7 源码的流程
运行环境:ubuntu 10.04 64-bit源修改:sudo gedit etc/apt/sources.list将源修改为速度较快的163源deb http://mirrors.163.com/ubuntu/ lucid main universe restricted multiversedeb-src http://mirrors.163.com/原创 2012-09-09 11:37:36 · 4715 阅读 · 3 评论 -
BroadcastReceiver应用详解
問渠那得清如許?為有源頭活水來。南宋.朱熹《觀書有感》据说程序员是最爱学习的群体,IT男都知道,这个行业日新月异,必须不断地学习新知识,不断地为自己注入新鲜的血液,才能使自己跟上技术的步伐。今天我们来讲一下Android中BroadcastReceiver的相关知识。BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。在转载 2012-09-29 22:57:31 · 600 阅读 · 0 评论 -
Android——修改开机画面
Android——修改开机画面开机第三屏(android动画)编译成功后在android源码根目录生成out目录,修改android\out\target\product\sdkDemo\system\framework目录下的framework-res.apk用winrar格式打开,替换assets\images里的2张图片即可开机第二屏(android字转载 2012-09-09 19:23:44 · 2849 阅读 · 0 评论 -
Android源码目录结构详解
Android 2.1 |-- Makefile |-- bionic (bionic C库) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等基础开发包配置) |-- cts (Android兼容性测试套件标准) |-- dalvik (dalvik JAVA虚拟机) |-- development (应用程序开发相关) |-- exter转载 2012-09-09 11:53:42 · 873 阅读 · 0 评论 -
Android Looper和Handler分析
Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。MessageQueue:消息队列,用来存放Handler发送过来的转载 2012-08-27 16:02:51 · 683 阅读 · 0 评论 -
在android 4.0上开发触摸设备驱动需要注意的几点
android 4.0已经渐渐流行,很多方案都已经基于其上,android 4.0的linux内核版本已经更新为linux 3.0,这个变化导致和内核直接接触的驱动需要或多或少的变化,以下描述的是触摸设备驱动的一些小变化:1.当一个(这时候的情境应该是多点触摸的情况)手指或是触摸工具抬起(UP)时,他应该立即消失在多点出没的同步报告中,当所有的工具或手指抬起,驱动应该立即发送一个“空”同步转载 2012-08-27 15:07:08 · 625 阅读 · 0 评论 -
android4.0与2.3版本的触摸屏驱动调试注意
android4.0与2.3版本的TP代码区别在android2.3上调试TP时,只需要把linux驱动调通,android就可以正常使用了,而到android4.0上又有些不同了,针对linux驱动,需添加如下内容: 1、在手指按下时需调用如下函数上报Key Down: input_report_key(struct input_dev *input转载 2012-08-27 15:06:24 · 1048 阅读 · 0 评论 -
从 HAL层 到java应用层重写mini6410 led功能
从HAL层到java应用层重写mini6410 led功能记录了我从HAL层到应用层如何把led这个设备控制实现的过程。如果有遗漏或者错误,请各位高手指点。这个事例通过Manager的形式调用Service,但是将LedService加入进了SystemSeivice,生成的libandroid_server.so文件是系统启动自动加载的,在应用程序中直接调用ServiceMana转载 2012-08-16 11:07:48 · 862 阅读 · 0 评论 -
Android系统层的input设备解析
前言:这篇从2011年写到2012年,呵呵,2012来临了,祝大家新年快乐,心想事成。 上一篇从linux内核角度分析input驱动,那么android怎么获取input信息呢?本文重点讨论这个话题。 在Java层,处理input类型消息在InputManager.java文件里,当然首先要找到源头,即InputManager类由谁来创建?在WindowManag转载 2012-08-24 16:08:21 · 774 阅读 · 0 评论 -
Android事件处理
Init-----------zygote---------system-server-------------------windosmanager ------------------------------------------------------------ UEventObserver -----------------------------------------转载 2012-08-24 13:46:15 · 671 阅读 · 0 评论 -
android中修改framework层代码后怎样操作才能看到修改后的效果?
1.下面方法适合真机:下载android源码,然后编译你修改的framwork的代码,会生成framework.jar,然后push到system/framework目录下,重启机器!ok 在源码下面, make framework 就可以生成framewrok.jar然后用adb push framewrok.jar system/framework/原创 2012-09-23 20:09:24 · 1481 阅读 · 0 评论 -
android 源码编译同步的小问题
一.warning: local_manifest.xml is deprecated; put local manifests in local_manifests instead解决办法:两种 A或BA.sudo rm -r ~/android/system/.repo repo init -u git://github.com/CyanogenMod/andr转载 2013-05-29 00:10:17 · 1156 阅读 · 0 评论 -
如何向android的framework里添加新API
google对于所有的类和API,分为开放式和不开放式两种。所谓的开放式就是javadoc所包含的,并不是java中有public和private,而是跟javadoc有关系,代码没有关系。在开放式的类中增加了一个变量,而又没隐藏,导致和原API的doc不一致造成的就会有错。通过提示,有2个方法可以解决 该问题:1、将新增加的变量或方法加上"@hide" 的注释,注意一点,加"@hi原创 2012-09-23 20:14:15 · 2636 阅读 · 0 评论 -
Android同步类:Mutex和Condition
Android提供了两个封装好的同步类,它们是Mutex和Condition。这是重量级的同步技术,一般内核都会有对应的支持。另外,OS还提供了简单的原子操作,这些也算是同步技术中的一种。下面分别来介绍这三种东西。1. 互斥类—MutexMutex是互斥类,用于多线程访问同一个资源的时候,保证一次只有一个线程能访问该资源。在《Windows核心编程》①一书中,对于这种互斥访问有一个很形象的转载 2013-01-08 19:53:47 · 1111 阅读 · 0 评论 -
mediarecorder调用流程
MediaRecordertest.javaMediaRecorder.javaandroid_media_mediarecorder.cppMediaRecorder.cpp(BpMediaRecorder) | Binder | MediaPlayerService::createMediaRecorder new MediaRecorderClient转载 2012-12-18 19:48:45 · 1736 阅读 · 0 评论 -
国内被墙后如何获取android源代码
不知道什么原因,按照http://source.android.com上的步骤并不能获取android源代码,估计又是被墙了。不过经过研究发现可以从一些镜像站点上获取android源代码Step 1.按照http://source.android.com/source/initializing.html配置好android编译环境Step 2.按照http://source.and转载 2012-11-26 08:55:34 · 1991 阅读 · 1 评论 -
两分钟彻底让你明白Android中onInterceptTouchEvent与onTouchEvent(图文)!
Hi,大家好,今天给大家分享一下Android中onInterceptTouchEvent与onTouchEvent,,记得楼主以前刚开始找工作的时候,被人问了关于Android中事件传递,当时还是菜鸟一枚,当然答不上来,被人无情的BS了。好了言归正传讲重点.onInterceptTouchEvent:onInterceptTouchEvent是在ViewGroup里面定义的。Andr转载 2012-09-25 22:49:44 · 673 阅读 · 0 评论 -
Android Launcher 拖放功能深入研究
Luancher有一个相对比较复杂的功能就是拖放功能,要深入了解launcher,深入理解拖放功能是有必要的,这篇blog,我将对launcher的拖放功能做深入的了解1.首先直观感受什么时候开始拖放?我们长按桌面一个应用图标或者控件的时候拖放就开始了,包括在all app view中长按应用图标,下面就是我截取的拖放开始的代码调用堆栈 at com.android.launcher2.D转载 2012-09-25 22:22:48 · 670 阅读 · 0 评论 -
windows + eclispe + android launcher2.2 源吗 编译
将Launcher2项目导入eclipse中。这时候Launcher2工程已经导入到eclipse中了,不过这时候会有100多个错误.2.添加Launcher2使用的包文件。由于在Android源码中,很多方法、成员、类、包都被打上@hide标签,这些成员在SDK中没有公开,以至于在编译Launcher源码时最常遇到的类android.view.View的成员mScrollX无法访转载 2012-09-25 09:36:44 · 886 阅读 · 0 评论 -
Android下编译自己的库文件jar并在应用中调用
主要为了解决如下问题:项目中使用了Android未公开的API,在Eclipse下会有红叉显示。不同的项目抽出相同部分的代码共用。必需的前提条件:需要有Android源代码,编译的库文件主要是封装未公开API或者共用代码。工程1:Java库文件工程该工程最终会生成以jar结尾的Java库文件,并会被安装到设备的以下目录:/system/framework原创 2012-09-23 22:25:12 · 1018 阅读 · 0 评论 -
Android开发:Framework添加新模块
主要是基于Android系统现在的Framework模块上再添加一个独立的模块,目前只是很简单的framework层调用native层(后期根据学习的进度,会将hal层补上,还有aidl, stub, 异步)。基本思路为: 为应用添加framework接口,即SDK API framework调用native代码,即jni部分 jni部分实现最终功能 最终功能其实就是很简单的log转载 2012-09-23 20:31:30 · 5111 阅读 · 0 评论 -
Android4.0 input touch解析
前言:在网上看到好多关于android input device流程分析,但是都不全,有的只是从linux内核那边分析,有的从android上层分析,而且分析的代码也比较老,都是在android2.3以下,最近在做android4.0下的多点触摸以及校准程序,多点触摸的驱动很好写,在linux内核里面都有现成的例子,照着改就可以了。但是android下的校准程序比较复杂,一种是在andro转载 2012-08-24 13:38:36 · 3075 阅读 · 0 评论 -
Android 2.3 input输入事件处理
linux内核提供了一个Input子系统来实现的,Input子系统会在/dev/input/路径下创建我们硬件输入设备的节点,一般情况下在我们的手机中这些节点是以eventXX来命名的,如event0,event1等等,可以利用EVIOCGNAME获取此事件结点名称。这就是android中对于input事件处理数据的来源点,至于驱动写入数据这块就不说了。首先,简而言之的介绍一下andr转载 2012-08-24 09:13:10 · 813 阅读 · 0 评论 -
Android输入设备配置文件(.idc文件)
1. 何为idc?idc(Input Device Configuration)为输入设备配置文件,它包含设备具体的配置属性,这些属性影响输入设备的行为。对于touch screen设备,总是需要一个idc文件来定义其行为。Android基于输入设备驱动汇报的事件类型和属性来检测和配置大部分输入设备的能力。然而有些分类是模棱两可的,如:多点触摸屏(multi-touch touch转载 2012-08-13 21:36:04 · 1789 阅读 · 0 评论 -
Android 中input event的分析
文章将分析Android 的Input Event 子系统的来龙去脉。Android 系统里面有很多小工具,运行这些工具,我们对它们有一个感性的认识,进而阅读和分析这些小工具源代码,再顺藤摸瓜,就可以把整个子系统的来龙去脉弄清楚。1.运行toolbox的getevent 工具。# getevent -helpgetevent -helpUsage:转载 2012-08-13 19:53:35 · 726 阅读 · 0 评论 -
使用JNI进行混合编程:在C/C++中调用Java代码
JNI就是Java Native Interface, 即可以实现Java调用本地库, 也可以实现C/C++调用Java代码, 从而实现了两种语言的互通, 可以让我们更加灵活的使用。 通过使用JNI可以从一个侧面了解Java内部的一些实现。 本文使用的环境是: 64位的win7系统JDK 1.6.0u30 (32位)C/C++编转载 2012-07-03 10:34:21 · 791 阅读 · 0 评论 -
Android之PreferenceActivity
看到很多书中都没有对PreferenceActivity做介绍,而我正好又在项目中用到,所以就把自己的使用的在这总结一下,也方便日后查找。PerferenceActivity是什么,看下面的截图: Android系统截图(左) MusicPlayer Setting截图(右) 好了,我们看到Android系统转载 2012-07-02 19:52:36 · 434 阅读 · 0 评论 -
JNI的学习
一.JNI设计的目的 1.c/c++不同点在JNI C 和 C++ 代码几乎相同;唯一的差异在于用在访问JNI函数的方法。在C中,JNI函数调用由(*env)->作前缀,目的是为了取出函数指针所引用的值。在C++中JNIEvn类拥有处理函数指针查找的内部成员函数C 语法:jsize len = (*env)->GetArrayLength(env,array);转载 2012-07-03 09:22:04 · 697 阅读 · 0 评论 -
JNI和NDK使用介绍
jni 的介绍 JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。以下介绍Andro转载 2012-07-03 10:36:01 · 722 阅读 · 0 评论 -
ANDROID JNI之JAVA域与c域的互操作
本文讲述AndroidJava域与C域互操作:Java域调用c域的函数;c域访问Java域的属性和方法;c域生成的对象的保存与使用。重点讲解c域如何访问Java域。虽然AndroidJNI实现中,c实现与c++实现是有所区别的,但行文中并未区分c还是c++。 0. Android中的JNIAndroid的APP开发一般是用Java,用到的系统服务和操作系统相关的东西是用c写的转载 2012-07-03 08:54:14 · 576 阅读 · 0 评论 -
Ubuntu搭建Eclipse+JDK+SDK的Android
一 安装配置Eclipse环境1 下载安装包Eclipse: eclipse官方下载网站, 或直接下载eclipse-jee-indigo-SR1-linux-gtk.tar.gzJDK: jdk官方下载网站,或直接下载jdk-7u1-linux-i586 .tar.gzSDK: sdk官方下载网站,或直接下载android-sdk_r15-linux .tgz转载 2012-07-08 15:59:00 · 515 阅读 · 0 评论 -
ubuntu下配置jdk+eclipse+android sdk
首先是安装ubuntu,这个在ubuntu官方网站http://www.ubuntu.org.cn/download/有链接下载,本人是安在win7上面的,ubuntu版本是11.04。双系统,下载下来之后是.iso文件格式,用虚拟光驱加载,双击里面的wubi.exe就可安装,就像安装一般的应用程序那么简单。ubuntu官方网站上面也有详细的安装教程。安装的时候建议安装在一个空白的分区里面,这个用转载 2012-07-08 14:55:23 · 521 阅读 · 0 评论 -
Android学习笔记--service部分
代码路径:frameworks\base\services分三个目录,java,jni,tests三个目录jni目录下为用c实现的服务代码,所有的服务被编译成一个jni动态库,libandroid_servers.sojava目录下为android封装的java实现,通过jni(libandroid_servers.so )调用底层代码,并向上层应用提供服务。转载 2012-07-08 22:32:06 · 587 阅读 · 0 评论 -
Android HAL实例解析
一、概述 本文希望通过分析台湾的Jollen的mokoid 工程代码,和在s5pc100平台上实现过程种遇到的问题,解析Andorid HAL的开发方法。 二、HAL介绍 现有HAL架构由Patrick Brady (Google) 在2008 Google I/O演讲中提出的,如下图。 Android的HAL是为了保护一些硬件提供商的知转载 2012-07-24 15:49:57 · 639 阅读 · 0 评论 -
Adroid 触摸屏设备
1. 触摸屏设备分类1.1 多点触摸满足以下两个条件为多点触摸设备:1)输入设备驱动报告了ABS_MT_POSITION_X 和ABS_MT_POSITION_Y存在2)输入设备没有任何手柄按钮1.2 单点触摸满足以下两个条件为单点触摸设备:1)输入设备不被归类为多点触摸设备2)输入设备报告存在ABS_X和ABS_Y绝对轴,以及存在BTN_TOUCH按键码转载 2012-08-13 21:37:40 · 1237 阅读 · 0 评论 -
Android 4.0 事件输入(Event Input)系统
1. TouchScreen功能在Android4.0下不工作 原来在Android2.3.5下能正常工作的TouchScreen功能,移植到Android 4.0就不能正常工作了。凭直觉,Android4.0肯定有鬼。真是不看不知道,一看吓一跳。在Android 4.0中,Event Input地位提高了,你看看,在Adroid2.3.5中,它在frameworks/base/l转载 2012-08-13 21:34:27 · 1315 阅读 · 0 评论 -
Linux & Android 多点触摸协议
【导读】:单点触摸信息是以ABS承载并按一定顺序发送,多点触摸信息则是以ABS_MT承载并按一定顺序发送,然后通过调用input_mt_sync()产生一个 SYN_MT_REPORT event来标记一个点的结束,告诉接收方接收当前手指的信息并准备接收其它手指的触控信息 为了使用功能强大的多点触控设备,就需要一种方案去上报用户层所需的详细的手指触摸数据。这个文档所描述的多点触控协议可以让转载 2012-08-24 09:26:51 · 1297 阅读 · 0 评论 -
android系统移植之按键驱动篇
平台:MX53_QSB开发板MX53_QSB开发板上一起有四个按键,分别为RESET,POWER,USER1,USER2。其中RESET为纯硬件复位按键,无须软件控制。POWER,USER1,USER2三个按键均需要程序控制。默认BSP包中将三个按钮全设置为上升和下降沿触发,当系统起来后,按下POWER键,进入睡眠状态,这时再按下POWER键唤醒时,系统系统被唤醒,但是一旦手松下,又触转载 2012-09-02 20:26:54 · 970 阅读 · 0 评论 -
Android多点触摸实现
Android多点触摸实现第一章 摘要 在Linux 内核支持的基础上, Android 在其 2.0 源码中加入多点触摸功能。由此触摸屏在 Android 的 frameworks 被完全分为 2 种实现途径:单点触摸屏的单点方式,多点触摸屏的单点和多点方式。第二章 软件位 在Linux 的 input.h 中,多点触摸功能依赖于以转载 2012-08-31 18:29:31 · 860 阅读 · 0 评论