
Androidbug
liangdapo
1321321
展开
-
高通8x25Q T4K35摄像头调试心得
commit db285ae7f99fa669d65651b11bff78ea1364ef99Author: wei.qifa Date: Thu Apr 2 15:37:44 2015 +0800 modified: chipcode/LINUX/android/vendor/qcom/proprietary/common/config/device-ven转载 2015-10-14 21:08:02 · 8393 阅读 · 0 评论 -
android logo、android开机动画改变详解
android logo:内核、android开机动画 android开logo,这一块在工作改动的也是比较多的,也比较简单,不同的公司,不同型号的产品,开机的标识不一样。 我们平时目测的开机logo一般是两种:静态的和动画的。其实在实现logo的过程中,有四幅图片:(1)、uboot显示;(2)、kernel显示logo_lin转载 2015-02-10 11:15:33 · 924 阅读 · 0 评论 -
Android FrameWork——Binder机制详解(1)
1.前面我曾经发表过一篇blog介绍了aidl实现机制(aidl实现机制浅析),不过那只是停留在java表层,并遗留了一个问题,那就是BinderProxy.transact 该方法本地化实现,同时我指出了它的具体代码位置:\frameworks\base\core\jni\android_util_Binder.cpp->static jboolean android_os_BinderPr转载 2015-02-10 11:07:41 · 473 阅读 · 1 评论 -
Linux文件权限详解
Linux文件权限详解文件和目录权限概述在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问;允许一个预先指定的用户组中的用户访问;允许系统中的任何用户访问。同时,用户能够控制一个给定的文件或目录的访问程度。一个文件活目录可能有读、写及执行权限。当创建一个文件时,系统会自转载 2015-02-10 10:38:55 · 350 阅读 · 0 评论 -
Vold工作流程分析学习
一 Vold工作机制分析 vold进程:管理和控制Android平台外部存储设备,包括SD插拨、挂载、卸载、格式化等; vold进程接收来自内核的外部设备消息。Vold框架图如下: Vold接收来自内核的事件,通过netlink机制。 Netlink 是一种特殊的 socket;转载 2015-02-10 10:08:52 · 913 阅读 · 0 评论 -
基于android4.0 USB gadget框架分析
基于android4.0 USB gadget框架分析2012-04-13 11:57:48分类: LINUX 转眼间,看usb gadget代码看的有一段时间了,把其中的层次关系大致的理了一遍,就写出来和大家分享下,不对之处敬请指出,了解层次结构嘛,当然是代码越简单越好,俗话说“柿子专拣软的捏”,就拿最简单的zero.c开涮啦!首先说下整体流程:一个UDC(转载 2015-02-10 10:36:54 · 983 阅读 · 0 评论 -
android usb流程
这是关于USB Mass Storage的架构图。 上图关系为: StorageManager为Client,MountService是Server,通过AIDL进行进程间通信。 MountService是一个Android Service,由systemserver启动。 Volume Daemon(Vold)是一个Native Service,有Ini转载 2015-02-10 10:16:05 · 3151 阅读 · 0 评论 -
USB协议架构及驱动架构
1. USB协议1.1 USB主机系统 在USB主机系统中,通过根集线器与外部USB从机设备相连的处理芯片,称为USB主机控制器。USB主机控制器包含硬件、软件和固件一部分。1.2 USB设备系统 USB设备按功能分为两部分:集线器(Hub)和功能部件。从下图可知,主机通过根集线器连接到各种外围设备(集线器和功能部件)。1.3 主机和设备之间通信模转载 2015-02-10 10:09:37 · 6869 阅读 · 0 评论 -
Linux USB Gadget--软件结构 .
USB Gadget是分层的软件结构,本文分析的是2.6.32.2版本的Gadget软件结构,这个软件结构与以前版本的变化很大。USB Gadget软件结构总共分为三层:一. UDC层 这一层是与硬件相关层。相关文件s3c2410_udc.c s3c2410_udc.h。s3c2410设备控制器作为一个linux设备在这一层是作为platform设备而注册到linux设备转载 2015-02-10 10:07:33 · 863 阅读 · 0 评论 -
module_param 模块参数
模块参数引导模块时,可以向它传递参数。要使用模块参数加载模块,这样写:insmod module.ko [param1=value param2=value ...]为了使用这些参数的值,要在模块中声明变量来保存它们,并在所有函数之外的某个地方使用宏MODULE_PARM(variable, type) 和 MODULE_PARM_DESC(variable转载 2015-02-10 10:05:52 · 586 阅读 · 0 评论 -
Android应用程序资源的编译和打包过程分析
我们知道,在一个APK文件中,除了有代码文件之外,还有很多资源文件。这些资源文件是通过Android资源打包工具aapt(Android Asset Package Tool)打包到APK文件里面的。在打包之前,大部分文本格式的XML资源文件还会被编译成二进制格式的XML资源文件。在本文中,我们就详细分析XML资源文件的编译和打包过程,为后面深入了解Android系统的资源管理框架打下坚实的基础。转载 2015-02-10 09:40:10 · 1153 阅读 · 0 评论 -
详解Top命令 输出命令行选项及代码
Linux中的top命令显示系统上正在运行的进程。它是系统管理员最重要的工具之一。被广泛用于监视服务器的负载。在本篇中,我们会探索top命令的细节。top命令是一个交互命令。在运行top的时候还可以运行很多命令。我们也会探索这些命令。 (译注:不同发行版的top命令在各种细节有不同,如果发现不同时,请读你的帮助手册和命令内的帮助。) 1. Top 命令输出 首先,让我们了解一下输转载 2014-12-13 14:48:49 · 2931 阅读 · 0 评论 -
linux top命令详解
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie转载 2014-12-13 14:38:59 · 432 阅读 · 0 评论 -
input 子系统架构总结
Linux输入子系统(Input Subsystem) Linux 的输入子系统不仅支持鼠标、键盘等常规输入设备,而且还支持蜂鸣器、触摸屏等设备。本章将对 Linux 输入子系统进行详细的分析。一 前言 输入子系统又叫 input 子系统。其构建非常灵活,只需要调用一些简单的函数,就可以将一个输入设备的功转载 2014-12-13 14:35:28 · 434 阅读 · 0 评论 -
Android4.x 如何处理Power按键
1. 简介 Android4.x在Framework的PhoneWindowManager对Power(KeyEvent.KEYCODE_POWER)和Home(KeyEvent.KEYCODE_HOME)键做了处理,不会把这些键传送上层应用程序。如需要把这些键发送给Activity和Service,需要在PhoneWindowManager处理这些键时“发送一个广播出去,然后在转载 2014-12-13 14:33:42 · 414 阅读 · 0 评论 -
自定义u-boot启动logo的方法
分类: LINUX 此文是对早期文章《U-boot开机logo的制作方法》 的更新。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 如果在uboot中实现了LCD等显示设备的驱动,uboot在启动的时候会在屏幕的左上角显示一个logo,如下图: 这个logo默认情况(只定义了CONFI转载 2015-02-10 09:36:08 · 2053 阅读 · 0 评论 -
android系统触摸屏虚拟按键
(一)虚拟按键的描述可以见韩超和梁泉的《Android系统级深入开发——移植与调试》的第八章: 虚拟按键(Virtual Key)是Eclair版本开始增加的新特性。Virtual Key的功能是利用触摸屏,模拟按键发生的事件,这样就可以利用触摸屏的边缘,实现一些可以自定义的按键效果。虚拟按键的实现效果如图8-5所示。图8-5 虚拟按键的实现效果在Android系统转载 2015-02-10 09:41:36 · 5541 阅读 · 0 评论 -
android——wifi系统架构
1. 系统架构 Android WiFi系统引入了wpa_supplicant,它的整个WiFi系统以wpa_supplicant为核心来定义上层用户接口和下层驱动接口。整个WiFi系统架构如下图所示: 一切尽在上图中,下面将对每部分进行详细分析。1.1 WifiService 由SystemServer启动的时候生成的Connecttivi转载 2015-02-10 09:43:54 · 504 阅读 · 0 评论 -
高通平台android 环境配置编译及开发经验总结
1、高通平台android开发总结1.1 搭建高通平台环境开发环境在高通开发板上烧录文件系统建立高通平台开发环境高通平台,android和 modem 编译流程分析高通平台 7620 启动流程分析qcril 流程分析,设置sim卡锁python scons 语法学习Python 语言之 scons 工具流程分析: 1.2 搭建高通平台环境开发转载 2015-11-13 21:15:30 · 10407 阅读 · 0 评论 -
欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl翻译 2015-08-09 18:13:24 · 497 阅读 · 0 评论 -
Android AIDL——实现机制浅析
Android AIDL——实现机制浅析 1.基于前面写的aidl使用,这段时间准备研究ActivityManager框架,对aidl进行了更深入的研究,因为android框架大量使用了进程通信机制,所以,在研究android framework前认真研究一下AIDL的实现机制十分有必要的 2.前面讲了aidl是 Android Interface definition lan转载 2015-02-10 11:14:41 · 376 阅读 · 0 评论 -
Android FrameWork——Activity启动过程详解
2011-07-11 09:55 16989人阅读 评论(16)收藏 举报androidstringsystemnullthreadapplication 前面发了blog分析了ActivityManager框架的大体结构,主要就是一个进程通信机制,今天我通过深入Activity的启动过程再次深入到ActivityManager框架,对其进行一个更深入的了解转载 2015-02-10 11:10:54 · 765 阅读 · 0 评论 -
Storage框架整理
一 storage功能相关模块MountService.java base/services/java/com/android/server/MountService.javaPackageManagerService.java base/services/java/com/android/server/pm/PackageM转载 2015-02-10 10:35:31 · 1215 阅读 · 0 评论 -
android2.3 SD卡,U盘自动挂载
在 s3c6410平台上移植android2.3 过程中SD卡总是不能自动挂载。 查阅相关资料,知道在android2.3中是 vold程序负责检查内核的 sysfs 文件系统,发现有SD卡插入后,自动挂载。 在文件系统目录 /system/etc/ 下有一个vold.fstab 文件,该文件是系统与用户硬件平台的交互接口,用户根据自己的平台来配置这个文件,里面内容比较简单,只需要你指定sys下转载 2015-02-10 09:59:39 · 1252 阅读 · 0 评论 -
Android之NDK开发
一、NDK产生的背景 Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态转载 2015-02-10 09:56:20 · 503 阅读 · 0 评论 -
Android FrameWork——PackageManager框架
1.接着前面讲的ActivityManager框架,继续说一下系统另一个重要的框架,PackagerManager同样先看一下静态类结构图:大部分情况我们是在Activity中使用getPackageManager方法获取一个ApplicationPackageManager的对象,ApplicationPackageManager实际上是包装了一个IPackageManager.St转载 2015-02-10 11:11:53 · 648 阅读 · 0 评论 -
Android FrameWork——Binder机制详解(2)
6.前面5个段落我主要说明了BinderProxy是如何把数据发送出去的,Ok,那么接下来,我们肯定想要知道服务端是怎么接收数据并传递给相应的BBinder进行处理的,有没有注意到前面waitForResponse我标注为蓝色的代码,这给我们一个启示,也许接收返回数据(进程作为客户端)和接收命令(进程作为服务端)处理的是同一个函数,但这是我的一个猜测,而实际上我参阅其它blog和代码后并非这么回事转载 2015-02-10 11:07:05 · 456 阅读 · 0 评论 -
Android FrameWork——Touch事件派发过程详解
对于android的窗口window管理,一直感觉很混乱,总想找个时间好好研究,却不知如何入手,现在写的Touch事件派发过程详解,其实跟android的窗口window管理服务WindowManagerService存在紧密联系,所以从这里入手切入到WindowManagerService的研究,本blog主要讲述一个touch事件如何从用户消息的采集,到WindowManagerService转载 2015-02-10 11:06:00 · 619 阅读 · 0 评论 -
android WIFI 架构和控制流程
一、WIFI的基本架构 1、wifi用户空间的程序和库: external/wpa_supplicant/ 生成库libwpaclient.so和守护进程wpa_supplicant。 2、hardware/libhardware_legary/wifi/是wifi管理库。 3、JNI部分: frameworks转载 2015-02-10 11:16:39 · 554 阅读 · 0 评论 -
Android FrameWork——ActivityManager框架
1.ActivityManager是android框架的一个重要部分,它负责一新ActivityThread进程创建,Activity生命周期的维护,本blog就是着手对ActivityManager框架作一个整体的了解 2.先看一个静态类结构图: 该图摘自 曹文斌blog 上图很清楚地描述了ActivityManager框架的几个主要类之转载 2015-02-10 11:12:50 · 549 阅读 · 0 评论 -
Java打印文件名、函数名、行号
Log.d(TAG,new Exception().getStackTrace()[0].getMethodName()); //函数名Log.d(TAG, Thread.currentThread().getStackTrace()[2].getMethodName()); //函数名Log.d(TAG, ""+Thread.currentThread().getStackTrace()[2转载 2015-02-10 10:12:53 · 9031 阅读 · 0 评论 -
Android 获取最近应用的缩略图
最近有项需求是获取应用的缩略,用于在动画时显示。因此就对此块知识简要了解了一下。在android中获取视频文件的缩略图有三种方法:1.从媒体库中查询新视频增加后需要SDCard重新扫描才能给新增加的文件添加缩略图,灵活性差,而且不是很稳定,适合简单应用2. android 2.2以后使用ThumbnailUtils类获取实现简单,但2.2以前的版本不支持3.调用jn转载 2015-02-10 09:53:56 · 1188 阅读 · 0 评论 -
Android input输入事件处理
linux内核提供了一个Input子系统来实现的,Input子系统会在/dev/input/路径下创建我们硬件输入设备的节点,一般情况下在我们的手机中这些节点是以eventXX来命名的,如event0,event1等等,可以利用EVIOCGNAME获取此事件结点名称。这就是android中对于input事件处理数据的来源点,至于驱动写入数据这块就不说了。首先,简而言之的介绍一下androi转载 2014-12-13 14:14:45 · 787 阅读 · 0 评论 -
Android事件处理分析
按键事件对于按键事件,调用mDevices->layoutMap->map进行映射。映射实际是由 KeyLayoutMap::map完成的,KeyLayoutMap类里读取配置文件qwerty.kl,由配置 文件 qwerty.kl 决定键值的映射关系。你可以通过修 改./development/emulator/keymaps/qwerty.kl来改变键值的映射关系。 JNI 函转载 2014-12-13 14:12:13 · 440 阅读 · 0 评论 -
android 休眠唤醒机制分析(三)
前面我们分析了休眠的第一个阶段即浅度休眠,现在我们继续看休眠的第二个阶段 — 深度休眠。在深度休眠的过程中系统会首先冻结所有可以冻结的进程,然后依次挂起所有设备的电源,挂起顺序与设备注册的顺序相反,这样保证了设备之间电源的依赖性;直至最后进入省电模式,等待用户或者RTC唤醒;在唤醒过程中则会按照设备注册的顺序依次恢复每个设备的电源进入正常工作状态,解冻相关的进程,然后再进行浅度休眠的唤醒流程。转载 2014-12-13 14:08:00 · 478 阅读 · 0 评论 -
Android Wifi驱动--底层
Android Wifi驱动--底层从framework到wpa_supplicant的适配层(wifi.c)网上介绍的帖子很多,而且本身也并不复杂,其中framework部分需要注意的是wifiService和wifiMoniter两部分,这两快一个是转发AP的CMD另一个是接收来自wpa_supplicant的CMD。他们与本地库的连接都是通过JNI方法,具体实现方法在andr转载 2014-12-13 14:43:45 · 1209 阅读 · 0 评论 -
android的Log输出
一个android应用程序运行后 并不会在 ide的控制台内输出任何信息. 不能在控制台输出。但是android提供的Log类。 在程序中输出日志, 使用 android.util.Log 类. 该类提供了若干静态方法 Log.v(String tag, String msg); Log.d(String tag, String msg); Log.i(String tag转载 2014-12-13 14:38:01 · 360 阅读 · 0 评论 -
android 休眠唤醒流程及定位唤醒问题总结
android 休眠唤醒流程及定位唤醒问题总结android2.3.1 kernel:2.6.35就从earlysuspend.c中说起,在early suspend中执行完所有驱动的early suspend后会调用wake_unlock,在wake_unlock函数中,如果判断系统已经没有唤醒锁,则会调度休眠的工作队列,此时就会执行队列函数suspend。见定义:static转载 2014-12-13 11:59:50 · 2330 阅读 · 0 评论 -
android wifi驱动移植详细过程
对于刚入手android没多久的人来说,android wifi 驱动的移植确实还是有难度的,不过参考了网友的相关帖子后,最终还是移植成功了,,以便自己和他人查看学习:&&&& WIFI的基本架构 &&&&(这一部分比较重要,是一直wifi驱动的基础)1、wifi用户空间的程序和库:external/wpa_supplicant/生成库libwpaclient.so和守护进程w转载 2014-12-13 14:39:55 · 545 阅读 · 0 评论 -
Android 的设备节点
Android使用Linux2.6,对标准内核改动较少,但是增加了一些内容,如yaffs文件系统Android专用驱动Ashmem匿名共享内存节点名称/dev/ashmem, 为用户空间程序提供内存分配机制,实现类似malloc的功能内核中代码路径: kernelmm/ashmeme.cC libutils库对其进行了封装:system/core/libcutils/ashme转载 2014-12-13 14:33:02 · 3674 阅读 · 0 评论