文章分类 -  android 源码分析

android 源码分析
android系统定制小技巧
摘要:1开机图片: android-logo-mask.png android-logo-shine.png 这两个图片一个在上一个在下 ./out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/classes/assets/images/android-logo-shine.png ./frameworks/base/core/res/assets/images/android-logo-shine.png 注意:如果源码没有make可以直接更改frameworks里的的图片就可以了 然后直接... 阅读全文

posted @ 2013-11-12 15:00 莫回头 阅读(209) 评论(0) 推荐(0)

Android系统系统升级过程分析之------update.zip包的制作 .
摘要:这篇及以后的篇幅将通过分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理。我们先从update.zip包的制作开始,然后是Android系统的启动模式分析,Recovery工作原理,如何从我们上层开始选择system update到重启到Recovery服务,以及在Recovery服务中具体怎样处理update.zip包升级的,我们的安装脚本updater-script怎样被解析并执行的等一系列问题。分析过程中所用的Android源码是gingerbread0919(tcc88xx开发板标配的),测试开发板是tcc88xx 阅读全文

posted @ 2013-08-19 16:28 莫回头 阅读(7172) 评论(0) 推荐(0)

Android的init过程详解(一)
摘要:本文使用的软件版本Android:4.2.2Linux内核:3.1.10 本文及后续几篇文章将对Android的初始化(init)过程进行详细地、剥丝抽茧式地分析,并且在其中穿插了大量的知识,希望对读者了解Android的启动过程又所帮助。本章主要介绍了与硬件相关初始化文件名的确定以及属性服务的原理和实现。 Android本质上就是一个基于Linux内核的操作系统。与Ubuntu Linux、Fedora Linux类似。只是Android在应用层专门为移动设备添加了一些特有的支持。既然Android是Linux内核的系统,那么基本的启动过程也应符合Linux的规则。如果研究过其他Linux系 阅读全文

posted @ 2013-07-25 17:01 莫回头 阅读(219) 评论(0) 推荐(0)

[MTK]LCD 调试总结
摘要:(ZZ加实践)(2011-4-9 16:33)(1) 液晶显示模式 并行:MCU接口、RGB接口、Vysnc接口串行:SPI接口、MDDI接口(2) 屏幕颜色实质上即为色阶的概念。色阶是表示手机液晶显示屏亮度强弱的指数标准,也就是通常所说的色彩指数。目前彩屏手机的色阶指数从低到高可分三个层次,最低单色,其次是256色、4096色、 65536色;目前最高的为26万色。256=2的8次方,即8位彩色,依次律推,65536色=2的16次方,即通常所说的16位真彩色,26万=2的18次方,也就是18位真彩。其实65536色已基本可满足我们肉眼的识别需求。(3) 分辨率LCD的分辨率与CRT显示器不同 阅读全文

posted @ 2013-06-17 16:04 莫回头 阅读(1764) 评论(0) 推荐(0)

Android Wi-Fi Display(Miracast)介绍 .
摘要:Android Wi-Fi Display(Miracast)介绍2012年11月中旬,Google发布了Android 4.2。虽然它和Android 4.1同属Jelly Bean系列,但却添加了很多新的功能。其中,在显示部分,Android 4.2在Project Butter基础上再接再厉,新增了对Wi-Fi Display功能的支持。由此也导致整个显示架构发生了较大的变化。本文首先介绍Wi-Fi Display的背景知识,然后再结合代码对Android 4.2中Wi-Fi Display的实现进行介绍。一背景知识介绍Wi-Fi Display经常和Miracast联系在一起。实际上, 阅读全文

posted @ 2013-06-07 13:05 莫回头 阅读(2621) 评论(0) 推荐(0)

Android驱动开发全过程(有图有真相)
摘要:前言意外在网上发现了这扁文章,看后感觉很有必要分享,所以整理并上传,希望大家喜欢。Android 硬件抽象层(HAL)概要介绍和学习计划Android 的硬件抽象层,简单来说,就是对Linux 内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space),其中,硬件抽象层运行在用户空间,而Linux 内核驱动程序运行在内核空间。为什么要这样安排呢?把硬件抽象层和内核驱动整合在一起放在内核空间不可行吗?从技术实现的角度来看,是可以的,然而从商业的角度来看,把对硬件的支持逻辑都放在内 阅读全文

posted @ 2013-05-23 15:48 莫回头 阅读(7140) 评论(0) 推荐(1)

Android SDK +Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建
摘要:情过无痕Android SDK +Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建Android SDK+Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建这几天一直在研究 Android SDK C/C++平台的搭建,尽管以前有成功在Windows XP做过,由于当时没有留下有用的记录,花了很多的冤枉时间,今天写出来以备后用。由于Android SDK和Eclipse都是用Java编写的,因此需要先在Windows 7上安装JDK,才能进行后续操作,下载地址:http://www.oracle.com/technetwork/java/j 阅读全文

posted @ 2013-04-11 14:51 莫回头 阅读(324) 评论(0) 推荐(0)

Android ndk 开发环境搭建 2
摘要:Android系统中的应用程序都是用Java开发的。Android NDK使我们能够在android上使用C/C++开发的原生代码。有两个理由使用NDK: 一是合理的重用现有的代码;二是在程序中某些关键的部分提高执行效率。使用Android NDK开发,除了普通Android开发环境外,还需要下载NDK包 和 安装Cygwin工具(windows环境下需要)。CygwinCygwin 是 Windows 上类似于 Linux 的环境。它包括一个提供 UNIX 功能性基本子集的 DLL 以及在这之上的一组工具。(所以在linux下不需要使用)安装Cygwin的步骤如下:1.下载setup.exe 阅读全文

posted @ 2013-04-11 14:23 莫回头 阅读(112) 评论(0) 推荐(0)

android 的NDK在Windwos环境搭建1
摘要:NDK的Windwos环境搭建Eclipse版本是3.6以上的一、下载android NDK您可以下载NDK r4for Windows或NDK r5for Windows安装包,下载地址:地址:http://developer.android.com/sdk/ndk/index.html下载后解压缩到你的工作目录,例如:E:\Android\tools\android-ndk-r7,结果如下图:Android NDK包含build、docs、samples、sources、GNUmakefile、ndk-build、ndk-gdb及readme等内容。samples下面包含几个实例开发演示项 阅读全文

posted @ 2013-04-11 14:06 莫回头 阅读(127) 评论(0) 推荐(0)

shell编程
摘要:if语句格式:if [ 条件表达式 ] /* 中括号前后均有空格 */then /* 如果想把if then写在同一行,应写成 if [ 条件表达式 ]; then*/ 语句1else /* 如果有多重分支,此句可以写成 elif [ 条件表达式 ]; then */ 语句2fi /* 不要忘记结尾的fi */例子:运行,可以在终端打印出hello。#!/bin/shNAME=helloif [ "$NAME" = "hello" ]; then echo $NAMEelse echo NAME is nullfi[ ] && ——快捷i 阅读全文

posted @ 2013-04-09 17:24 莫回头 阅读(100) 评论(0) 推荐(0)

Android学习之AndroidManifest.xml文件分析
摘要:AndroidManifest.xml文件是在宏观上对整个Android应用程序的工程描述。下面是一个具体的AndroidManifest.xml内容。<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.helloarm" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSd 阅读全文

posted @ 2013-04-09 17:15 莫回头 阅读(229) 评论(0) 推荐(0)

基于linux平台编写首个JNI程序
摘要:JNI 是 Java Native Interface 的缩写,中文为 JAVA本地调用。从Java1.1开始,Java Native Interface(JNI) 标准成为 java 平台的一部分,它允许Java代码和其它语言写的代码进行交互。JNI 一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。 使用 java 与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的,比如,使用一些旧的库,与硬件、操作系统进行交互,或者为了提高程序的性能。注意:java 是跨平台的(一次编译到处运行) 阅读全文

posted @ 2013-04-09 17:09 莫回头 阅读(146) 评论(0) 推荐(0)

Java入门学习笔记
摘要:Object 类是所有 Java 类的根基类,如果类的声明中未使用 extends 关键字指明其基类,则默认基类为 Object 类。 class Cat extends java.lang.Object{ .... } 定义成员变量时可以对其初始化,如果不对其初始化, Java 使用默认的值对其初始化。成员变量的作用范围为整个类。 方法的重载(voerload):重载构成的条件:方法的名称相同,但参数类型或参数个数不同。 static 关键字:在类中用 static 声明的成员变量为静态变量,它为该类的公共变量,在第一次使用时被初始化,对于该类的所有对象来说,static 成员变量只有一份。 阅读全文

posted @ 2013-04-09 17:08 莫回头 阅读(185) 评论(0) 推荐(0)

Android JNI 开发环境
摘要:什么是 NDK?NDK 指用于 Android 的本地开发工具包(Native Development Kit)。原来在 Java 中有一个 JNI(Java Native Interface,Java 本地接口),可以使通过 C/C++ 编写的代码在Java 中使用。在 Android 中,NDK 的作用是把 C/C++ 编写的代码创建为共享库的形式,以便可以再Android应用程序中使用。1.安装 NDK:tar jxf android-ndk-r8b-linux-x86.tar.bz2 利用 NDK 编译 JNI 库文件的方法非常简单。只要在相应项目源代码目录下输入“ndk-buil.. 阅读全文

posted @ 2013-04-09 16:38 莫回头 阅读(89) 评论(0) 推荐(0)

利用NDK编写Android第一个库
摘要:LED 驱动在内核中是以混杂设备的形式注册的,设备节点是 /dev/leds,内核中 file_operations 只实现了 unlocked_ioctl 方法,这也限制上层应用必须用 ioctl 来控制 LED 的状态。1.编写驱动测试程序 leds.cint main(int argc, char *argv){ int fd; fd = open("/dev/leds", O_WRONLY); if(fd < 0) { printf("open /dev/leds error\n"); return -1; } ioctl(fd, 1, 0 阅读全文

posted @ 2013-04-09 16:35 莫回头 阅读(205) 评论(0) 推荐(0)

Android应用程序之LED驱动
摘要:工欲善其事必先利其器,很多人都想知道 libfriendlyarm-hardware.so 是怎么实现的,但是非常遗憾,它的代码并不开源。我们倒不如来个逆向思维,先学会去使用它,在使用的过程中你就会发现很多细节,这也是创造者留下的蛛丝马迹。等你对这些接口十分了解后,你自然会成为下一个libfriendlyarm-hardware.so 实现者。 本文介绍如何使用 libfriendlyarm-hardware.so 驱动 Tiny6410-S70 开发板上的四盏 LED 灯。1.在 SDK 下新建 Android 应用程序;2.定位到你的 Android 应用程序目录,在应用程序目录下创建 l 阅读全文

posted @ 2013-04-09 16:21 莫回头 阅读(403) 评论(0) 推荐(0)

android之应用程序LED(1)
摘要:参考友善的LED程序,自己也写了个,不是用友善的libfriendlyarm-hardware.so,自己用NDK中的例子hello-jni写了个程序,已经编译成libhello-jni.so,可惜上不了图。 自己摸索了好久总算有点收获,感谢各位网友的帮忙。部门源码贴出来给大家参考! 刚搞完就拿出来分享了,欢迎大家指正。有谁想看libfriendlyarm-hardware.so的源码的可以参考这个。JNI部分 用C语言实现复制代码/** Copyright (C) 2009 The Android Open Source Project** Licensed under the Apache 阅读全文

posted @ 2013-04-09 09:56 莫回头 阅读(196) 评论(0) 推荐(0)

Android移植应该做的两步工作
摘要:Android系统的移植工作的目的是为了在特定的硬件上运行Android系统。在移植的过程中,把握关键要点,减少工作量是一个重要的方面。从工作的角度,通常的方法为,首先要熟悉硬件抽象层的接口,其次要集成和复用已有的驱动程序,主要的工作量在硬件抽象层的实现中。为了更好地理解和调试系统,也应该适当地了解上层对硬件抽象层的调用情况。 移植方面主要的工作有两个部分: Linux驱动 Android系统硬件抽象层 Linux中的驱动工作在内核空间,Android系统硬件抽象层工作在用户空间,有了这两个部分的结合,就可以让庞大的Android系统运行在特定的硬件平台上。 Android移植的主要... 阅读全文

posted @ 2013-04-07 13:37 莫回头 阅读(165) 评论(0) 推荐(0)

Android模拟器正确应用与安装方法
摘要:Android模拟器的使用,可以帮助我们很好的学习这一操作系统,方便大家理解。那么在这里就为大家介绍一下相关的应用与安装技巧。手机从出现至今,已经逐渐的成为了人们的必备工具之一。许多厂家都在不断的改变手机的功能,提升其在生活工作中所占据的重要地位。Google公司推出了一款手机操作系统Android,可以提升手机性能,方便灵活的应用于人们的生活与工作中。在这里我们就先来了解一下这一系统中Android模拟器的相关概念。要玩GPhone的Android模拟器,当然需要先去google上面下载Android的SDK,解压出来后在SDK的根目录下有一个tools文件夹,里面就是模拟器和一些非常有用的 阅读全文

posted @ 2013-04-07 09:07 莫回头 阅读(351) 评论(0) 推荐(0)

linux 上新建android 模拟器 .
摘要:今天在网上查询hipri网络连接的时候偶然看到了一位仁兄的评论:我只知道模拟器上的网络连接用的是hipri正是这句话让我想起了在linux 上新建一个模拟器,用模拟器来做下CTS测试,于是呼便有了以下拙见:1.首先将SDK的tools路径加到环境变量中去进入root目录, 显示隐藏的文件,export PATH="/tools/android-sdk-linux/tools:$PATH"加入路径2.显示SDK版本id在终端输入命令android list target,显示的id在下面创建模拟器的时候要用到3.创建模拟器在终端输入命令android create avd - 阅读全文

posted @ 2013-04-07 09:02 莫回头 阅读(747) 评论(0) 推荐(0)