
Android学习与分析
#冷风那个吹#
每天进步一点点
展开
-
Jollen--Video Streaming 探讨
Linux 的应用(刊载于PC2000 杂志十一月号)-- Video Streaming 探讨(5)本期将以完整的程式范例为主, 说明之前未深入说明的地方。并且更详细地介绍video4linux 如何以mmap (filp-flop) 方式撷取影像资料, 同时也会展示如何将撷取转载 2011-07-12 19:49:35 · 834 阅读 · 0 评论 -
android JNI那些事
http://www.cnblogs.com/MarsGG/articles/2057433.html首先说明,Android系统不允许一个纯粹使用C/C++的程序出现,它要求必须是通过Java代码嵌入Native C/C++——即通过JNI的方式来使用本地(Nati转载 2011-10-16 16:26:23 · 559 阅读 · 0 评论 -
android gps杂乱分析
在上层调用locationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER))时返回了false,追了一下代码看看,以下是在LocationManagerService.java中private void _loadProvidersLocked() { // Attempt to原创 2011-10-21 10:40:05 · 918 阅读 · 0 评论 -
Android多语言定制的机制
1、ICU4C简介 ICU4C(ICU for C, http://site.icu-project.org/ ) 是ICU在C/C++平台下的版本, ICU(International Component for Unicode)是基于"IBM公共许可证"的,与开源组织合作研究的, 用于支持软件国际化的开源项目。ICU4C提供了C/C++平台强大的国际化开发能力,软件开发者几乎可以使用ICU转载 2011-11-08 15:04:34 · 811 阅读 · 0 评论 -
Android build system 分析
1. Android编译系统分析编译脚本及系统变量build/envsetup.sh脚本分析在编译源代码之前通常需要在android源代码顶层目录执行 . ./build/envsetup.sh 目的是为了使用脚本 envsetup.sh 里面定义了一些函1. Android编译系统分析编译脚本及系统变量build/envsetup.sh脚本分析在编译源代码之前通常需要原创 2012-02-04 15:13:26 · 1195 阅读 · 0 评论 -
修改开机画面:initlogo.rle
Android系统开机动画包括两部分:开机显示的 ANDROID 文字;ANDROID发光动画。这篇文章说的开机动画是第一种,下面开始正文!1. 制作当前屏幕像素的图片(模拟器默认为320*480)使用PS制作一张320*480的图片,保存时选“保存为 Web 所用格式”,然后在弹开的窗口上,“预设”项选择“PNG-24”,保存为android_logo.png注:好像原创 2012-02-09 13:21:40 · 3829 阅读 · 0 评论 -
Android NFS 文件系统
最近在研究android的移植,目标平台是s3c6410。在网上看到很多高手的文章,得到很多启发。这里有一篇如何使用nfs作为根文件系统的文章,写的不错, 转载到这里了,看了这篇文章以后,根据自己的使用心得,把自己的使用方法也写了下来,供大家参考[First written by Steve Guo, please keep the mark if forwarding.]Usua转载 2012-02-10 15:03:51 · 1116 阅读 · 0 评论 -
长按menu按键旋转屏幕方向
有个功能,通过长按menu按键,可以旋转屏幕方向(0°或者90°),这个功能有时蛮有用的,下面来看看是如何实现的: 1 修改按键处理程序 frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java boolean mSearchKeyPressed;原创 2012-02-13 12:56:25 · 1729 阅读 · 0 评论 -
android2.3.7wifi移植
经过一周多的奋战,终于把WiFi成功的移植到了android2.3,我的硬件平台是s3c6410处理器, android2.3的无线设置中 成功检测到无线网络,且连接到无线路由,可以使用自带的浏览器上网,祝贺一下,下面把移植过程给大家分享,免得大家走弯路。 先给大家推荐外国朋友写的一篇博客,我发现国内的软件研发人员好多都是翻译这篇文章,我给大家推荐看原版的,因为有的人翻译过来,可能原创 2012-03-12 15:48:53 · 1709 阅读 · 0 评论 -
android copybit的应用
最近再弄6410 2d加速,想实现copybit,先是从网上搜相关的内容,从网上一搜东西还真不少,可是在看过之后,再打开自己的代码看了一下,很多都不一样,网上的很多的东西,只能是借鉴着看了。 android2.3.4的代码中已经加入了copybit功能,可是如果才能调用呢?原创 2012-03-29 15:27:20 · 1013 阅读 · 0 评论 -
copybit调研报告
Copybit模块在android2.0以后归OpenGL管理,在libagl中专门有一个copybit.cpp文件对其进一步封装并进行管理。当然,也有越狱的时候,这个我们在后面讨论,首先还是看看copybit.cpp。注意在android.mk中有个宏定义,默认是打开的#define LIBAGL_USE_GRALLOC_COPYBITS1、libagl/copybi转载 2012-03-29 15:18:45 · 906 阅读 · 0 评论 -
Android2.3 中如何使用GPU硬件加速
1.名词解释GPU:Graphic Processing Unit (图形处理器)OpenGL:Open Graphic Library 定义了一个跨编程语言、跨平台的编程接口的规格,不同厂商会有不同的实现方法,它主要用于三维图象(二维的亦可)绘制。SurfaceFlinger:Android中负责Surface之间叠加、混合操作的动态库Skia:Android中的2D图形库l原创 2012-03-29 15:51:14 · 651 阅读 · 0 评论 -
pmem driver代码分析
Android会使用Linux中的pmem driver进行内存分配。通过代码的阅读,分配的关系我做了张简单的图。说明:1. pmem_probeA. 获得设备的内存空间,包括物理地址和大小B. 对空间的管理模块进行初始化,分区域C. 对空间进行 ioremap 2. pmem_openA. 创建新的pmem_data结构B. 并使之与pmem[]建立链原创 2012-03-18 10:42:37 · 743 阅读 · 0 评论 -
Android PMEM驱动分析
对PMEM机制的实现的分析同样可以从该设备的初始化开始,进而分析整个机制的运作。在pmem.c文件中我们可以发现,该设备通过module_init和module_exit分别定义了其初始化和退出函数,实现如下:static int pmem_probe(structplatform_device *pdev){struct android_pmem_platform_data*pdat原创 2012-03-19 13:47:25 · 2484 阅读 · 0 评论 -
build/envsetup.sh简记Android系统编译分析
每次进入到android source目录后的第一件事恐怕就是先执行. build/envsetup.sh,完成一些命令的初始化,今天主要分析envsetup.sh。1. 命令-也就是envsetup.sh中的函数function help() # 显示帮助信息function get_abs_build_var()转载 2012-05-07 13:15:17 · 754 阅读 · 0 评论 -
sd_fusing.sh注释
## Copyright (C) 2010 Samsung Electronics Co., Ltd.# http://www.samsung.com/## This program is free software; you can redistribute it and/or modify# it under the terms of the GN原创 2012-05-31 15:32:29 · 1778 阅读 · 0 评论 -
android4.04在210上运行
前两天在网上找一个mango板的代码,然后下载下来,编译了一下,然后想试试在自己的板子上运行,看一下效果,遇到一些小问题,不过今天终于启动了,不过什么功能都没测试,硬件原理图不一样,还有触摸屏的驱动也不对,所以只能用鼠标,不过效果不错,跑在A8上面一点不卡,比6410好很多秀一下效果以后再调一下各模块的驱动原创 2012-07-25 15:32:09 · 600 阅读 · 0 评论 -
Dalvik VM的启动过程解析
Dalvik 虚拟机的启动要从android另一个著名的模块,Zygote,说起。 我们知道android系统中,每一个java应用被设计成可以运行在一个单独的Linux进程中。而每个该进程都包含一个运行中的dalvik虚拟机实例,用来执行该应用中的java字节码。很多java基础类(比如,java.lang.*)和一些系统级的共享性资源(drawable/color...)等几乎转载 2012-08-10 14:54:20 · 1068 阅读 · 0 评论 -
GPS启动分析
首先来看看GPS模块的代码结构:Framework:1.frameworks/base/location/java/android/location这里主要是用来被App调用的,API包是android.location。2.framework转载 2011-10-13 16:29:46 · 672 阅读 · 0 评论 -
分析Android+根文件系统启动过程(init守护进程分析)
今天开始分析Android 根文件系统启动过程。在Android系统启动时,内核引导参数上一般都会设置“init=/init”,这样的话,如果内核成功挂载了这个文件系统之后,首先运行的就是这个根目录下的init程序。这个程序所了什么呢? 我们只有RFSC(Readthe转载 2011-10-12 15:01:12 · 483 阅读 · 0 评论 -
property_get/property_set
每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。在系统初始化时,Android将分配一个共享内存区来存储的属性。这些是由“i转载 2011-10-11 08:54:36 · 1069 阅读 · 0 评论 -
(转)Android深入浅出之Audio 第一部分 AudioTrack分析
本文来自http://www.cnblogs.com/innost/archive/2011/01/09/1931457.htmlAndroid深入浅出之Audio第一部分 AudioTrack分析一 目的本文的目的是通过从Audio系统来分析Android的代码,包括Andro转载 2011-07-21 17:29:39 · 540 阅读 · 0 评论 -
(转)Android深入浅出之Audio 第二部分 AudioFlinger分析
本该来自http://www.cnblogs.com/innost/archive/2011/01/15/1936425.html一 目的本文承接Audio第一部分的AudioTrack,通过AudioTrack作为AF(AudioFlinger)的客户端,来看看AF是如何完成工转载 2011-07-21 17:32:01 · 921 阅读 · 0 评论 -
Binder机制
转自http://hi.baidu.com/autumn%C0%B6%B8%F1%D7%D3/blog/item/54c363c688f6c0cad100608a.htmlbinder(一)一、很多service都是通过binder机制来和客户端通讯交互的,我以MediaServ转载 2011-07-14 08:34:11 · 900 阅读 · 0 评论 -
Android GSM驱动模块(rild)详细分析(三)response流程
前文对request的分析, 终止在了at_send_command_full_nolock里的writeline操作,因为这里完成命令写出到硬件设备的操作,接下来就是等待硬件响应,也就是response的过程了。我们的分析也是从这里开始。 response信息的获取,是在第一篇转载 2011-07-19 11:11:30 · 596 阅读 · 0 评论 -
Android开发之GSM驱动模块详细分析(一)
android的RIL驱动模块, 在hardware/ril目录下,一共分rild,libril.so以及librefrence_ril.so三个部分,另有一radiooptions可供自动或手动调试使用。都依赖于include目录中ril.h头文件。目前cupcake分支上带的转载 2011-07-19 11:03:12 · 777 阅读 · 0 评论 -
Android GSM驱动模块详细分析(二)request流程
1. 多路复用I/O机制的运转上文说到request是接收,是通过ril_event_loop中的多路复用I/O,也对初始化做了分析.现在我们来仔细看看这个机制如何运转.ril_event_set负责配置一个event,主要有两种event:ril_event_add添加使用多路转载 2011-07-19 11:14:41 · 618 阅读 · 0 评论 -
Android2.1下调试3G模块(二)
前面讲到了如何让修改kernel驱动和ril层代码,接下来还需要增加ppp拨号以及设备文件和服务属性。1.修改init.gprs-pppd属性对应文件:system/core/include/private/android_filesystem_config.h在st原创 2011-08-05 07:53:09 · 1685 阅读 · 0 评论 -
Android2.1下调试3G模块(三)
现在开始介绍如何实现ppp拨号上网。在/system/etc下创建ppp目录,并在ppp目录下创建以下文件: 1.init.gprs-pppd#!/system/bin/sh# An unforunate wrapper scriptPPPD_PI转载 2011-08-05 07:53:58 · 2346 阅读 · 0 评论 -
Android2.1下调试3G模块(一)
曾几何时在Android2.1下调试3G模块,曾几何时模块厂商提供的库不能用,曾几何时只能用自己的库痛苦地调试...这一切的一切都已成往事,昔日的成功在毫无保留下成为浮云,该忘了忘记了,该记得也跟着忘记了。现如今再次调3G模块,却不知道以前如何调试,看来还是要记下来。我采用的转载 2011-08-05 07:51:01 · 2297 阅读 · 1 评论 -
UBIFS 文件系统的使用
UBIFS 文件系统的使用一、 UBIFS 简介 由IBM、nokia工程师Thomas Gleixner,Artem Bityutskiy等人于2006年发起,致力于开发性能卓越、扩展性高的FLASH专用文件系统,以解决当前嵌入式环境下以FLASH作为MTD设原创 2011-08-06 22:43:38 · 3834 阅读 · 0 评论 -
浅谈Android开机启动速度优化(含应用程序启动速度优化)
众所周知Android开机启动速度较慢,于是如何加快启动速度便成为一个值得讨论的问题。在查阅过许多资料后(特别是Google Group的android-platform),我整理总结出下面几点基本看法。 Android开机启动耗时较多的部分有2个,分别是preloa转载 2011-09-05 20:13:44 · 1078 阅读 · 0 评论 -
android使用socket使底层和framework通信
一般的native和framework的通信是通过jni,但是这一般只是framework调用native,native如果有消息要怎样通知上层 呢?android中GSP模块提供一种解决思路,但是实现有些复杂,这里介绍一种使用socket通信的方法可以使native和frame转载 2011-09-05 09:00:24 · 569 阅读 · 0 评论 -
Android的RIL驱动模块启动流程
Android的RIL驱动模 块, 在hardware/ril目录下,一共分rild,libril.so以及librefrence_ril.so三个部分,另有一 radiooptions可供自动或手动调试使用。都依赖于include目录中ril.h头文件。目前cupcake分支上原创 2011-09-05 09:17:59 · 758 阅读 · 0 评论 -
android ndk 学习
Android系统中的应用程序都是用Java开发的。Android NDK使我们能够在android上使用C/C++开发的原生代码。有两个理由使用NDK: 一是合理的重用现有的代码;二是在程序中某些关键的部分提高执行效率。这里先讲几个符号的约定: - 你的Android应原创 2011-08-06 20:00:30 · 562 阅读 · 0 评论 -
ubi and ubifs应用手记
1.配置ubi and ubifsin .config CONFIG_MTD_UBI=y CONFIG_UBIFS_FS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_原创 2011-08-06 22:44:34 · 4553 阅读 · 0 评论 -
Android重量级开发之--提高android启动速度研究
作者:Tigertang2@gmail.com 大家都知道启动速度慢是智能操作系统的一个通病,Android也不例外,启动速度大概在1分钟左右,虽然日本有一个叫quick boot的一秒启动android的产品,转载 2011-09-05 19:48:29 · 1434 阅读 · 0 评论 -
WIFI移植
手动加载驱动####16th,Jul驱动加载modprobe libertasmodprobe libertas_sdio加载第二行时出错拉# modprobe libertas_sdiolibertas_sdio: Libertas SDIO dri转载 2011-08-30 13:30:46 · 1744 阅读 · 0 评论 -
Android触摸分析
一,校准的触摸算法如下: 触摸屏校准通用方法。(XL, YL是显示屏坐标,XT, YT是触摸屏坐标,)XL = XT*A+YT*B+CYL = XT*D+YT*E+F由于具体计算是希望是整数运算,所以实际中保存的ABCDEF为整数,而增加一个参数DivXL = (XT*A+YT*B+C) / DivYL = (YT*D+YT*E+F) / DivTSLIB把以上的7原创 2012-09-05 15:42:17 · 834 阅读 · 0 评论