- 博客(160)
- 资源 (16)
- 收藏
- 关注
转载 深入理解:Android 编译系统
一,简介: Android Build 系统是用来编译 Android 系统,Android SDK 以及相关文档的一套框架。众所周知,Android 是一个开源的操作系统。Android 的源码中包含了许许多多的模块。 不同产商的不同设备对于 Android 系统的定制都是不一样的。如何将这些模块统一管理起来,如何能够在不同的操作系统上进行编译,如何在编译时能够支持面向不同的硬件
2015-12-30 13:38:51
940
转载 How to find the crash point: Android Native crash
There is a very quick way to find out which line cause the crash in logcat,Generally, if some native service crashes, look in the crash log in logcat like this:I/DEBUG ( 2253): *** *** *** ***
2015-09-25 15:47:34
849
转载 DEFINE_PER_CPU
转自 http://www.unixresources.net/linux/clf/linuxK/archive/00/00/47/91/479165.html首先,在arch/i386/kernel/vmlinux.lds中有/*will be free after init*/.=ALIGN(4096);__init_begin=.;/*省略*/.ALIGN
2015-08-20 15:03:10
2596
转载 linux panic 和 bug_on
内核在发生严重错误的时候要“X屏”一下,以windows为例就是蓝屏,而 linux却是黑屏,windows仅仅提供一个出错码和对应地址,十分难以 理解,而linux却可能提供整个寄存器和堆栈,它不隐瞒一切,代码公开,当然出错时的环境就没有必要隐瞒了,首先看一下panic:NORET_TYPE void panic(const char * fmt, ...){ lon
2015-07-31 15:43:42
1204
转载 linux缺页异常处理--内核空间
缺页异常被触发通常有两种情况——1.程序设计的不当导致访问了非法的地址2.访问的地址是合法的,但是该地址还未分配物理页框下面解释一下第二种情况,这是虚拟内存管理的一个特性。尽管每个进程独立拥有3GB的可访问地址空间,但是这些资源都是内核开出的空头支票,也就是说进程手握着和自己相关的一个个虚拟内存区域(vma),但是这些虚拟内存区域并不会在创建的时候就和物理页框挂钩,由于程序的局部性原理
2015-07-30 17:27:56
611
转载 Android Factory Reset flow
Android Factory Reset flow ===== 应用流程 =========>frameworks/base/services/java/com/android/server/MasterClearReceiver.javaRecoverySystem.rebootWipeUserData(context);====>framesworks/base/core/j
2015-01-23 13:28:38
668
转载 android HAL浅探
又挖一个坑,好久没写了,看得代码多而繁乱,又没有专精一块,到头来还是困惑丛生,不管了,做个笔记,写写自己对android hal层的一点理解。涉及的代码来自android-4.0版本。1.概念和原因android hal的概念和存在的原因,不必多说,其实就两点。1.隔离具体驱动接口的变化,2.保护硬件厂商的关键信息。通过这一层的封装1.各类硬件(fb,gps,sensor)只需
2014-10-11 14:00:51
688
转载 Linux文件误删除恢复操作
作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于家庭单机使用的Linux,或者误删文件后及时补救,还是可以恢复的。恢复步骤一、用运SecureCRT远程对操作系统上,查看一下当前系统版本号,及文件系统格式
2014-08-04 09:33:47
774
转载 Android系统之闹钟模块浅析
关键词: JNI , HAL,Sqlite 在手机中,闹钟功能是一个最基本的功能,也是我们一个很常用的功能,现在来分析下android是怎么实现的,下面将采用自上而下的方式讲解。 1、APP层 进入桌面闹钟应用程序,选择设置新闹钟,会调到 Alarms.java 里面的 public static long setAlarm(Context
2014-03-15 22:09:16
1314
转载 Linux芯片级移植与底层驱动(基于3.7.4内核) --中断控制器
中断控制器驱动在Linux内核中,各个设备驱动可以简单地调用request_irq()、enable_irq()、disable_irq()、local_irq_disable()、local_irq_enable()等通用API完成中断申请、使能、禁止等功能。在将Linux移植到新的SoC时,芯片供应商需要提供该部分API的底层支持。local_irq_disable()、local
2014-01-29 10:40:23
964
转载 内存调试的东西D/dalvikvm( 809 ): GC_CONCURRENT freed
1. verbosegc 一般Java虚拟机要求支持verbosegc选项,输出详细的垃圾收集调试信息。dalvik虚拟机很安静的接受verbosegc选项,然后什么都不做。dalvik虚拟机使用自己的一套LOG机制来输出调试信息。如果在Linux下运行adb logcat命令,可以看到如下的输出: D/dalvikvm( 745): GC_CONCURRENT fr
2013-12-26 14:21:32
700
转载 linux内核SMP负载均衡浅析
需求在《linux进程调度浅析》一文中提到,在SMP(对称多处理器)环境下,每个CPU对应一个run_queue(可执行队列)。如果一个进程处于TASK_RUNNING状态(可执行状态),则它会被加入到其中一个run_queue(且同一时刻仅会被加入到一个run_queue),以便让调度程序安排它在这个run_queue对应的CPU上面运行。一个CPU对应一个run_queue这样的设计,
2013-12-22 11:12:20
829
转载 linux regulator之浅见
1: 校准器的基本概念所谓校准器实际是在软件控制下把输入的电源调节精心输出。Regulator模块用于控制系统中某些设备的电压/电流供应。在嵌入式系统(尤其是手机)中,控制耗电量很重要,直接影响到电池的续航时间。所以,如果系统中某一个模块暂时不需要使用,就可以通过regulator关闭其电源供应;或者降低提供给该模块的电压、电流大小。Regulator的文档在KERNEL/Docume
2013-12-02 21:53:42
8476
转载 dvfs 解析
一、基本概念DVFS(Dynamic Voltage and Frequency Scaling)动态电压频率调节,是一种实时的电压和频率调节技术。在 CMOS 电路中功率消耗主要可以分为动态功率消耗和静态功率消耗,公式如下: 其中 C 代表负载电容的容值,V 是工作电压,α 是当前频率下的翻转率,f为工作频率,I_dq 代表静态电流。公式的前部分代表的是动态功率消耗,后部分
2013-12-02 21:48:01
2814
转载 UTMI及USB 2.0 PHY高速传输特性分析
原文地址:2.0 PHY高速传输特性分析">UTMI及USB 2.0 PHY高速传输特性分析作者:大宇1. 概述USB2.0利用传输时序的缩短(微帧125us)以及相关的传输技术,将整个传输速度从原来的12Mbps提高到480Mbps,提高了40倍的带宽,为开发高宽带USB接口产品提供条件。USB2.0支持USB1.1的全速(Full Speed)和低速(Low Speed)工作环境,其电
2013-07-31 14:34:22
6196
2
转载 備份Thunderbird郵件和設置
在即將推出的ubuntu11.10中,郵件程式evolution已經被Thunderbird所取代。evolution本身提供了備份和恢復功能,但是Thunderbird並沒有提供備份和恢復功能。不過對thunderbird的數據進行備份並不是一件困難的事情。 Thunderbird所有的數據包括賬戶設置,郵件以及插件都存放在用戶目錄的.thunderbird/xxxxxxxx.defa
2013-07-23 23:25:03
2332
转载 VNC Server in Virtual Mode does not start correctly on Ubuntu 12.04
http://kb.realvnc.com/questions/196/VNC+Server+in+Virtual+Mode+does+not+start+correctly+on+Ubuntu+12.04Using the default settings on a 4.6.3 install on Ubuntu 12.04, the desktop is not started p
2013-07-22 10:53:29
1751
转载 Git忽略已跟踪文件的改动
我的Emacs配置文件已经放到github上面了,一方面记录更改,一方面也可以到处都可以下载来用。目前我常用的机器上,都有一份dotemacs的clone。那么问题来了,假如对其中一个文件做了只适合本地的修改,那么commit就会把这些修改一起记录下来,然后push到github上面时,就会在各个系统之间的混乱。因此我专门做了一个文件放在init-files里面,命名为99local-co
2013-06-25 18:58:14
1638
转载 android系统中的log定向
android系统中的log定向本文转载自:http://blog.youkuaiyun.com/knock/article/details/5511255 为了调试,必须要将log怎么打印的搞清楚,于是有了以下的分析。我们通常在程序中插入LOGD(..),LOGE(..)之类的语句,但什么情况下可以查看这些打印消息呢?首先,来到定义处:system/core/include/cutils
2013-04-03 17:09:47
956
转载 从底层到上层添加驱动模块
转载自:http://www.hovercool.com/en/%E6%B7%BB%E5%8A%A0%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9D%97#a_.E4.B8.80.E3.80.81.E7.BC.96.E5.86.99.E9.A9.B1.E5.8A.A8.E6.A0.B8.E5.BF.83.E7.A8.8B.E5.BA.8F1
2013-03-28 10:59:46
2152
转载 Android RIL学习
http://blog.youkuaiyun.com/dlmu2001/article/details/6541475 1.Android RIL概念Android RIL是基于telephony 服务和raido 硬件层的抽象层。Android的rild库是介于HAL接口与baseband modem之间,它提供了语音、数据、短信、SIM卡管理以及STK应用的功能。它把标准的 GSM27.007中常
2013-03-15 15:48:33
929
转载 Makefile中指示符“include”、“-include”和“sinclude”的区别
指示符“include”、“-include”和“sinclude” 如果指示符“include”指定的文件不是以斜线开始(绝对路径,如/usr/src/Makefile...),而且当前目录下也不存在此文件;make将根据文件名试图在以下几个目录下查找:首先,查找使用命令行选项“-I”或者“--include-dir”指定的目录,如果找到指定的文件,则使用这个文件;否则继续依此搜索以下几
2013-03-14 16:57:15
670
转载 抛弃中断bottom half,使用中断线程吧
在linux里,中断处理分为顶半(top half),底半(bottomhalf),在顶半里处理优先级比较高的事情,要求占用中断时间尽量的短,在处理完成后,就激活底半,有底半处理其余任务。底半的处理方式主要有soft_irq,tasklet,workqueue三种,他们在使用方式和适用情况上各有不同。soft_irq用在对底半执行时间要求比较紧急或者非常重要的场合,主要为一些subsystem用,
2013-03-07 09:27:48
1381
转载 Android系统插入OTG后不休眠
这两天一直忙着搞插入OTG死机的问题。有时候机器上面插入个U盘,鼠标,或者硬盘,如果这个时候没有接充电器的话,有很大的概率机器直接死机了,而且必须插入充电器才能开机。实测电池电压基本为0,原来是电池过流保护了。由于采购的电池保护点过低(1.5A的时候就挂了),只能想办法把输出电流降到最低了,尝试过很多方法,调低背光亮度可以有效解决在正常使用中死机,但是插入OTG死机的问题一直没有得到解决。硬件
2013-03-02 10:12:50
1416
转载 Android初始化语言(init.*.rc、init.conf文件格式)
在分析Android系统的init程序源码时看到了这份Doc,觉得对系统的分析挺有用的,所以翻译了出来!Android初始化语言(init.*.rc、init.conf文件格式)Android初始化语言包含了四种类型的声明:Actions(行动)、Commands(命令)、Services(服务)和Options(选项)。所有这些都是以行为单位的,各种记号由空格
2013-03-01 15:37:03
601
转载 pthread_create用法 c线程
今天开始学习linux下用C开发多线程程序,Linux系统下的多线程遵循POSIX线程接口,称为pthread。#include int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void
2013-02-26 14:47:01
736
转载 打开伪终端设备pts
p align="JUSTIFY">19.3 打开伪终端设备 在SVR4和4.3+BSD系统中打开伪终端设备的方法有所不同。我们提供两个函数来处理所有细节:ptym_open用来打开下一个有效的伪终端主设备,ptys_open用来打开相应的从设备。#include ourhdr.hint ptym_open(char *pts_name); 返回:如果操作成功
2013-02-26 10:24:53
4984
转载 android 里面的 AutoMutex
在 frameworks/base/libs/binder/ProcessState.cpp 的 startThreadPool() 函数中,函数一开始,就声明了:AutoMutex _l(mLock);就去了解了一下,不复杂,但感觉很有思想。在 frameworks/base/include/utils/threads.h 中,有:[cpp] view p
2012-12-18 14:18:00
4875
转载 在Ubuntu中VirtualBox下xp使用usb设备
最近在使用Ubuntu10.10下碰到不少问题,现将部分整理如下,自己亲测通过。 Ubuntu版本:12.04 Oracle VM VirtualBox版本:4.1.12 问题:USB 2.0 is currently enabled for this virtual machine. However, this requires the Oracle VM Virt
2012-11-20 20:07:28
3709
1
转载 linux2.6.32内核Suspend流程
转自 http://blog.youkuaiyun.com/coolraining/article/details/6677888Suspend流程参考linux2.6.32Suspend锁流程Suspend&resume流程具体看main.c(kernel/power);上层通过属性节点写命令,最终会调到此文件中的state_store函数。state_store(){
2012-11-13 09:58:50
758
转载 打开Android C文件中的LOG
打开Android C文件中的LOG可以一次打开LOGV,LOGI,LOGD,也可以分别打开: #undef NDEBUG //打开LOGV/LOGI/LOGD#define LOG_NDEBUG 0 //打开LOGV#define LOG_NIDEBUG 0 //打开LOGI#define LOG_NDDEBUG 0 //打开LOGD
2012-10-23 15:13:25
7366
转载 sysfs API总结
sysfs是用于表现设备驱动模型的文件系统,它基于ramfs。要学习linux的设备驱动模型,就要先做好底层工作,总结sysfs提供给外界的API就是其中之一。sysfs文件系统中提供了四类文件的创建与管理,分别是目录、普通文件、软链接文件、二进制文件。目录层次往往代表着设备驱动模型的结构,软链接文件则代表着不同部分间的关系。比如某个设备的目录只出现在/sys/devices下,其它地方涉及到它时
2012-10-13 16:47:23
5438
转载 linux驱动法度中的并发把握
现代操纵体系有三大特点:中断处理惩罚、多任务处理惩罚和多处理惩罚器。这些特点导致当多个过程、线程或者CPU同时接见一个资料时,可能产生错误,这些错误是操纵体系运行所不容许的。在操纵体系中,内核须要供给并发把握机制,对共享资料进行保护。 在操纵体系中,并发是指一个时候段中有几个法度都处于已启动运行到运行完毕之间,且这几个法度都是在同一个处理惩罚机上运行,但任一个时刻点上只有一个法度在处理惩罚机
2012-10-13 16:39:36
896
转载 如何调试makefile
makefile 的调试有点像魔法。可惜,并不存在makefile 调试器之类的东西可用来查看特定规则是如何被求值的,或某个变量是如何被扩展的。相反,大部分的调试过程只是在执行输出的动作以及查看makefile。事实上,GNU make 提供了若干可以协助调试的内置函数以及命令行选项。用来调试makefile 的一个最好方法就是加入调试挂钩以及使用具保护的编程技术,让你能够在事情出错时恢复
2012-10-12 21:13:56
661
转载 android耳机监测
最近在做Marvell的项目,碰到个耳机热插拔的问题,所以顺便看了下相关代码,这里来贡献一下给大家。我们这里以PXA的代码为例,整个框架比较的简单清晰,上层是分别是HeadsetObserver.java以及HookSwitchObserver.java,它们会直接读取/sys/class/switch/中某一特定的设备的state,比如"/sys/class/switch/h2w/sta
2012-10-09 21:47:26
725
转载 Android uevent
一、Android uevent架构 Android很多事件都是通过uevent跟kernel来异步通信的。其中类UEventObserver是核心。 UEventObserver接收kernel的uevent信息的抽象类。 1、server层代码 1)battery server: frameworks/frameworks
2012-10-09 09:59:52
766
转载 TTY终端的输入过程
TTY终端的输入过程=================1) 当用户按压键盘时, 键盘中断处理程序将经过转换的键盘功能码用tty_insert_flip_char()放入到当前打开终端的翻转缓冲区之中, 然后将缓冲区输出任务函数(flush_to_ldisc)添加到控制台任务队列(con_task_queue)并激活控制台软中断执行该任务函数. flush_to_ldisc()翻转读写缓冲区
2012-09-07 17:34:42
6481
转载 android的adb详解(多设备时adb调用)
2011-07-25 10:29:15 在多设备(模拟器)时,想要直接用logcat查看其中一台的状态,或者直接把应用安装到目标设备上时,需要指定设备号。adb devices这个指令可以得到当前设备的序列号(serialNumber)。比如一个模拟器通常是 emulator-5554在adb的指令后面加上参数 -s 比如 -s emulator-5554就可以指
2012-09-07 09:36:21
1960
转载 ANDROID音频系统散记之四:4.0音频系统HAL初探
昨天(2011-11-15)发布了Android4.0的源码,今天download下来,开始挺进4.0时代。简单看了一下,发现音频系统方面与2.3的有较多地方不同,下面逐一描述。一、代码模块位置1、AudioFlinger[plain] view plaincopyframeworks/base/services/audioflinger
2012-09-01 23:33:05
721
Google usb driver V8
2013-08-25
sis672 linux 显卡驱动
2011-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人