andorid
darling757267
328726103
展开
-
Binder Driver缺陷导致定屏的案例
本文讲解异步binder call是如何阻塞整个系统的,通过ramdump信息以及binder通信协议来演绎并还原定屏现场。一、背景知识点解决此问题所涉及到的基础知识点有:Trace、CPU调度、Ramdump推导、Crash工具、GDB工具、Ftrace, 尤其深入理解binder IPC机制。1.1 工具简介Trace:分析死锁问题的最基本的技能,通过kill -3可生成相应的...转载 2019-04-26 11:16:44 · 954 阅读 · 0 评论 -
Android LOG机制的实现
http://www.cnblogs.com/hoys/archive/2011/09/30/2196199.html Android提供了用户级轻量的LOG机制,它的实现贯穿了Java,JNI,本地c/c++实现以及LINUX内核驱动等Android的各个层次,而且足够简单清晰,是一个相当不错的解读案例。本系列文章针对LOG机制的内部实现机理进行解读,本文是系列的第一篇,解读LO转载 2012-04-22 17:53:34 · 461 阅读 · 0 评论 -
系统启动init.rc完全解析
http://apps.hi.baidu.com/share/detail/5569347主要介绍linux 内核启动过程以及挂载android 根文件系统的过程,以及介绍android 源代码中文件系统部分的浅析。 主要源代码目录介绍Makefile (全局的Makefile)bionic (Bionic 含义为仿生,这里面是一些基础的库的源代码)bootable转载 2012-04-21 19:34:15 · 1138 阅读 · 0 评论 -
android 源码结构
2011-06-19 23:35 132人阅读 评论(0)收藏 举报http://blog.163.com/lzh_327/blog/static/721948020101117113951142/目录一、源代码结构 2第一层次目录 2bionic目录 3bootloader目录 5build目录 6dalvik目录 9developme转载 2012-04-20 16:36:23 · 369 阅读 · 0 评论 -
创建一个新的Android产品项目(修正)
http://blog.csdn.net/jiajie961/article/details/5993126 从google网站上下载的android源代码编译时默认是编译google设定的产品,如果要开发自己的产品,则需要重新定义一个产品项目,过程如下:首先我们定义产品的规格,举例如下:公司名称 ardent产品名称 MTP主板名称 merlin然后安装下面的步转载 2012-04-17 22:35:41 · 522 阅读 · 0 评论 -
Android电话系统
http://blog.csdn.net/maxleng/article/details/5576509Android电话系统之概述篇 首先抛开Android的一切概念来研究一下电话系统的最基本的描述。我们的手机首先用来打电话的,随后是需要一个电话本,随后是PIM,随后是网络应用,随后是云计算,随后是想我们的手机无所不能,替代PC。但是作为一个电话的基本功能如下:0)拨叫电话转载 2012-04-20 11:25:41 · 769 阅读 · 0 评论 -
android源码编译补充
1、我是在vmware下安装ubuntu 11.10的,这个网上资料很多,不多说了。我给ubuntu分了25g硬盘和1g内存。2、请参照http://source.android.com/source。初始化编译环境检查一下包是否安装:Python 2.4-2.7Git 1.5.4 或更高版本没有话可以sudo apt-get install..安装一下JDK转载 2012-04-19 13:00:33 · 363 阅读 · 0 评论 -
android源码编译
这是个老话题了,毕竟从2.3发布到现在已经有段日子了,很多人都做过同样到工作,也有很多XDJM把他们的编译过程Blog出来,以飨大家。不过这个世界上最奇妙的就是大家的幸福都是一样的,不幸确各有各的不同,在这里把自己在编译过程中遇到的各路牛鬼蛇神一一展现出来,以期与大家共同切磋,共同进步。 整个编译过程可以归纳为一下几个问题到解决: 1)、搭台唱戏 :为android2.转载 2012-04-18 21:10:28 · 620 阅读 · 0 评论 -
android系统开发(八)-SDCARD
关于android系统开发sdcard移植,主要有如下工作:1,内核驱动开发,完成后每次插入和拔出sdcard系统都会有相关的信息显示,而且sdcard可以手动挂载。2,android的sdcard挂载主要是vold来完成,vold的源代码在/system/vold目录下,编译成/system/bin/voldinit.rc文件中有vold系统服务,确保android系统开机后vo转载 2012-04-17 22:45:24 · 297 阅读 · 0 评论 -
android系统开发(七)-背光模块
1,总论背光模块属于HAL层开发,HAL层开发,用一句话来概括就是定义一个hardware.h中定义的名称为宏HAL_MODULE_INFO_SYM的hw_module_t结构体,然后实现结构体的相关内容2,驱动方面的准备简单的嵌入式linux驱动,编写LCD背光驱动,并提供接口给上层修改,我所用的是直接修改接口文件,接口如下:/sys/class/backlight/pw转载 2012-04-17 22:44:53 · 483 阅读 · 0 评论 -
android系统开发(五)-tslib移植
(1)切换至tslib目录然后执行如下命令(以marvell平台为例)./autogen.shecho "ac_cv_func_malloc_0_nonnull=yes" > arm-marvell-linux.cache./configure --host=arm-marvell-linux-gnueabi --prefix=/work/svn/ts_build --cache-fi转载 2012-04-17 22:43:28 · 376 阅读 · 0 评论 -
Android系统移植(一)-让android系统在目标平台上运行起来
Android系统由于用的是linux内核,因此内核移植和嵌入式linux内核移植差异不大,过程如下:(1)移植boot-loader和linux2.6内核到目标平台上,让linux内核可以启动起来,基本的驱动允许正常。此过程完全是嵌入式linux的开发,这里直接跳过。需要注意的是,由于android已经被linux官方开除,因此从网站上(如http://www.kernel.or转载 2012-04-17 22:37:56 · 574 阅读 · 0 评论 -
android编译系统makefile(Android.mk)写法.txt
http://blog.csdn.net/jiajie961/article/details/5997147android编译系统的makefile文件Android.mk写法如下(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式:LOCAL_PATH:=$(cal转载 2012-04-17 22:37:06 · 366 阅读 · 0 评论 -
android系统开发(十)-audio移植一
1,移植基础:(1)内核声音驱动和alsa驱动(2)alsa-lib和alsa-utils库移植这两部分上一节已经介绍过了。2,android的audio最核心的部分是audioflinger,audioflinger向上处理来自于应用程序的声音相关的所有请求向下通过AudioHardwareInterface访问硬件,android的audio架构如下所示:转载 2012-04-17 22:47:12 · 735 阅读 · 0 评论 -
Android 开机图片/文字/动画的修改
Android 开机会出现3个画面:a. Linux 系统启动,出现Linux小企鹅画面(reboot);b. Android平台启动初始化,出现"A N D R I O D"文字字样画面;c. Android平台上层图形系统启动,出现含闪动的ANDROID字样的动画图片(start)。1/ 开机图片(Linux小企鹅)Linux Kernel引导启动后,加载该图片。/ke转载 2012-04-22 18:14:45 · 525 阅读 · 0 评论 -
Dalvik 调试分析
前言:dalvik 是 Android 的重要组成部分 ,掌握其运行机制对理解整个Android系统有着相当之大的帮助。本文将介绍GDB单步调试和Dexdump工具的使用,期望为探索dalvik打下一定的基础。 1. Dalvik 之编译为了能够更方便的调试dalvik,我们需要编译一个在X86上运行的dalvik和相关工具。编译步骤如下:首先进入到Android 源码根目录转载 2012-04-20 21:34:38 · 1403 阅读 · 0 评论 -
android 烧录image镜像
在已得到Android的烧录映像后,操作如下:DNW中设置加载 oot地址:0x57e00000,先将CFG3跳线配置到第三向左第四向右,从NOR FLASH启动。1,u-boot 开机上电,烧录一次 OOT后,按键盘进入命令状态,输入dnw,第二次烧入u-boot文件,因为要烧入NAND中。 执行nand erase 0 40000;nand write c000转载 2013-03-12 12:56:18 · 1538 阅读 · 0 评论 -
Binder子系统之调试分析(三)
一. binder调试信息1.1 binder_thread调用方法:print_binder_threadthread 8980: l 12 //tid=8980,looper=12关于looper状态值:BINDER_LOOPER_STATE_REGISTERED = 0x01, // 创建注册线程BC_REGISTER_LOOPERBINDER_LOOPER_S...转载 2019-04-26 11:06:25 · 886 阅读 · 0 评论 -
Binder子系统之调试分析(二)
一. 节点创建上一篇文章已经介绍了binder子系统调试的一些手段,这篇文章再来挑选系统几个核心服务进程来进行分析.1.1 内核编译选项如果系统关闭了debugfs,则通过编辑kernel/arch/arm/configs/×××_defconfig//开启debugfsCONFIG_DEBUG_FS=y//有时,可能还需要配置fs的白名单列表,例如:CONFIG_DEBU...转载 2019-04-26 11:05:22 · 1583 阅读 · 0 评论 -
Binder系列—开篇
一、概述Android系统中,每个应用程序是由Android的Activity,Service,Broadcast,ContentProvider这四剑客的中一个或多个组合而成,这四剑客所涉及的多进程间的通信底层都是依赖于Binder IPC机制。例如当进程A中的Activity要向进程B中的Service通信,这便需要依赖于Binder IPC。不仅于此,整个Android系统架构中,大量采...转载 2019-04-26 11:02:44 · 174 阅读 · 0 评论 -
Binder子系统之调试分析(一)
一. 概述在博客以前有写过关于binder系列,大概写了10篇关于binder的文章,从binder驱动,到native层,再到framework,一路写到app层的使用。有兴趣的可以看看Binder系列—开篇。二.Binder驱动调试看过Binder系列文章的同学,会发现Binder IPC过程最终都交给Binder Driver来完成,这是真正干跨进程通信活的地方,那么意味着这里...转载 2019-04-26 11:00:23 · 559 阅读 · 0 评论 -
android RTC
http://blog.csdn.net/crycheng/article/details/78025021.首先搞清楚RTC在kernel内的作用: linux系统有两个时钟:一个是由主板电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟。当操作系统关机的时候,用这个来记录时间,但是对于运行的系统是不用这个时间的。另一个时间是 “System clo转载 2015-07-24 14:57:57 · 841 阅读 · 0 评论 -
linux&android休眠唤醒
http://blog.csdn.net/tommy_wxie/article/details/7208633Linux休眠/唤醒简介休眠/唤醒在嵌入式Linux中是非常重要的部分,嵌入式设备尽可能的进入休眠状态来延长电池的续航时间。这篇文章就详细介绍一下Linux中休眠/唤醒是如何工作的,还有Android中如何把这部分和Linux的机制联系起来的.在Linux中,休眠主要分转载 2015-07-23 10:30:57 · 837 阅读 · 0 评论 -
Android ?Pixelflinger 研究
1. Pixelflinger简介Pixelflinger是Android系统中为 OpenGL ES引擎提供的一套软件渲染器(renderer)。系统启动时通过查看启动日志信息可以获取当前Pixelflinger的软件版本(代码)。 Pixelflinger软件版本随着Android版本的升级而提高,目前最新的版本为1.3(基于Android2.2系统)。I/SurfaceFlinger转载 2013-11-22 12:00:38 · 815 阅读 · 0 评论 -
android shell input
Android平台下开发中,使用最多的是adb shell,可以通过USB或WIFI来与设备连接调试,而在ADB的SHELL命令行下,有时为了进行强度测试,需要用到模拟事件,用于模拟键盘、指针移动、输入文字等功能,刚好在adb shell下有如下命令可用: 1、模拟键盘输入事件 执行adb shell input命令(该命令实现源码在frameworks/base/cmd转载 2013-11-16 00:44:08 · 1195 阅读 · 0 评论 -
git 服务器搭建和管理
注意:使用ssh协议的时候,库的路径可以是绝对路径使用git协议的时候,必须搭建Gitosis管理,且库的路径是相对于/home/git/repositories库的家目录的/home/git/repositories 可以是其他目录的软链接1. 安装git# apt-get install git# sudo addusr git# mkdir /home/g原创 2013-08-28 15:31:28 · 740 阅读 · 0 评论 -
android 定制开关机铃声和动画
系统通常默认支持开机动画,开机关机铃声服务倒是预先定义了,不过使用时需要在/sysytem/media/下添加相应的音频文件。长按Power键弹出关键选项,关机时也只是显示进度条,而不是我们期望的关机动画同时伴有关机铃声,当然在做二次开发的时候,这些都是可以定制的。下面将逐步分析如何实现这些定制化的需求。一. 制作开机动画开机画面是保存在/system/media的b转载 2013-07-01 09:27:22 · 967 阅读 · 0 评论 -
android sharedUserId 用户id配置
最近在做个东西,巧合碰到了sharedUserId的问题,所以收集了一些资料,存存档备份。 安装在设备中的每一个apk文件,Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户都会被分配到一个属于自己的统一的Linux用户ID,并且为它创建一个沙箱,以防止影响其他应用程序(或者其他应用程序影响它)。用户ID 在应用程序安装转载 2013-06-08 16:24:07 · 1112 阅读 · 0 评论 -
make otapackage 流程
我们知道,在Android源码整编后执行make otapackage命令即可生成OTA整包,但除此之外它还完成了哪些功能?具体又是如何完成的呢?事实上,在OTA升级过程中命令make otapackage完成了三件事情:重新对system.img文件进行了打包;生成差分资源包,路径为out/target/product//obj/PACKAGING/target_files_转载 2013-06-06 11:15:21 · 11834 阅读 · 2 评论 -
android 常用的调试方法
在Android的应用开发中,我们会用到各种代码调试;其实在Android的开发之后,我们可能会碰到一些随机的问题,如cpu过高,内存泄露等,我们无法简单的进行代码调试,我们需要一个系统日志等等,下面我把握工作中碰到的几个常用命令和方法给大家演示实践一下。1.logcat命令这个命令最简单常用,可查看帮助,我不多说,如果需要打印时间,加参数-v time?转载 2013-06-06 08:57:59 · 726 阅读 · 0 评论 -
android系统开发(六)-HAL层开发基础
Android HAL层,即硬件抽象层,是Google响应厂家“希望不公开源码”的要求推出的新概念1,源代码和目标位置源代码: /hardware/libhardware目录,该目录的目录结构如下:/hardware/libhardware/hardware.c编译成libhardware.so,目标位置为/system/lib目录/hardware/libhardware/inc转载 2012-04-17 22:44:18 · 405 阅读 · 0 评论 -
android系统开发(四)-触摸屏tslib移植(内核)和原理分析
首先了解一下tslib的运行原理,tslib的运行分成两部分(1)校验在LCD固定坐标位置依次显示出5个坐标让用户触摸,把LCD坐标和用户触摸时驱动屏驱动底层的坐标总共5组值保存起来运行tslib库的算法对其进行运算,得出校准用7个值(2)校准每次触摸屏驱动读取到硬件坐标时应用校准用的7个值对该坐标进行一次运算,然后将运算后的坐标作为正常坐标即可。按照上面的原理,转载 2012-04-17 22:42:52 · 436 阅读 · 0 评论 -
Android系统移植(二)-按键移植
这一部分主要是移植android的键盘和按键(1)Android使用标准的linux输入事件设备(/dev/input目录下)和驱动,按键定义在内核include/linux/input.h文件中,按键定义形式如下:#define KEY_ESC 1#define KEY_1 2#define KEY_2 3转载 2012-04-17 22:38:40 · 325 阅读 · 0 评论 -
AIDL和远程Service调用
【上篇】本讲内容:AIDL和远程Service调用本讲源代码:App_elfPlayer本讲的内容,理解起来很难,也许你看了很多资料也看不明白,但是用起来缺简单的要命。所以我们干脆拿一个音乐播放器中进度条的实例来说明一下 AIDL和Remote Service的价值和使用方法,你把这个例子跑一边,体会一下就OK了。下面的例子是我正在准备的项目实例中的一部分。首先说明一下我们面临的问题,如果看不转载 2012-02-03 12:57:24 · 500 阅读 · 0 评论 -
Ubuntu环境下 Android平台源码的下载及编译
本文介绍Ubuntu环境下Android源码下载及编译方法,Android源码是什么?Android源码就是指Android平台和软件源码,不单指Linux内核Kernel,我们常说的Linux Kernel在这个Open source project里,只是其中的一个组成部分。那么我们什么时候需用到Andriod源码呢?添加修改驱动、固化APK应用、定制OS、权限及服务修改或固化等等,大都需要修转载 2012-02-03 12:55:48 · 411 阅读 · 0 评论 -
Android内核和驱动篇-Android内核介绍
已经有一些的文章介绍Android内核了,本系列篇将从Linux内核的角度来分析Android的内核,希望给初学者提够有用的信息。本章将简单的介绍Android内核的全貌,起到一个抛砖引玉的作用。从下一篇开始将详细介绍每一个Android内核驱动程序及其作用。 Android内核是基于Linux 2.6内核的(目前最新开发版本是2.6.31),它是一个增强内核版本,除了修改部分Bug外,它提转载 2012-02-03 12:53:31 · 401 阅读 · 0 评论 -
Android四大组件之 Service
一 Service简介 Service是运行在后台的,没有界面的,用来处理耗时比较长的。Service不是一个单独的进程,不是一个单独的线程。 Service有两种类型:本地服务(Local Service):用于应用程序内部 远程服务(Remote Sercie):用于android系统内部的应用程序之间 前转载 2012-02-03 16:42:54 · 518 阅读 · 0 评论 -
Android 应用性能调试
概述创造愉快用户体验的关键是开发响应快捷的应用。借助Android* 软件开发套件(SDK)提供的组件,性能问题调试任务因为简单易用的性能分析工具而变得更简单了。在这篇文章中,我们将认识一些不同的工具,它们可排除故障和调试性能问题或小幅度提升已完成应用的性能。我们不会说得太细,只会概括介绍如何针对您的应用使用这些工具。我们将在Eclipse 中展示这些工具;您可以根据“ADT Plug转载 2012-02-03 16:41:27 · 320 阅读 · 0 评论 -
Android Launcher全面剖析
首先来说说我为什么写这篇文章,最近公司要我负责搞Launcher,网上一查这方面的资料比较少,并且不全,研究起来相当困难,所以就写了这篇文章,希望对大家有帮助。这篇文章是相当长的,希望读者能耐心读下去,实际上也花了我很长时间来写。好了闲话少说,我们切入正题。 这篇文章我会讲以下Launcher内容: Launcher转载 2012-02-03 16:33:58 · 2245 阅读 · 1 评论 -
Android核心分析
文章皆来自CSDN网友maxleng的专栏,maxleng是名Android爱好者,长期从事嵌入式系统及手机软件系统研究,自2010年4月起,在CSDN上先后发表28篇《Android核心分析》系列博文,收到网友们的极高评价。《Android核心分析》整理如下:1. 方法论探讨之设计意图2. 方法论探讨之概念空间篇3. 手机之硬件形态4. 手机的软件形态5. Android基本转载 2012-02-03 12:38:00 · 395 阅读 · 0 评论