自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(88)
  • 收藏
  • 关注

转载 Android6.0 Bluetooth学习

蓝牙 bluetooth-之一http://blog.csdn.net/shichaog/article/details/51931898蓝牙bluetooth之二-源码分布http://blog.csdn.net/shichaog/article/details/52066906蓝牙之三-StateMachinehttp://blog.cs

2016-11-30 10:33:15 646

转载 Android --- Setting up a Linux build environment

Setting up a Linux build environmentThese instructions apply to all branches, including master.The Android build is routinely tested in house on recent versions ofUbuntu LTS (14.04), but most di

2016-09-18 10:48:31 541

转载 android蓝牙编程 重点知识 SPP A2DP UUID

蓝牙编程很简单,步骤如下:(1).获得本机蓝牙设备:BluetoothAdapter mBTAdp = BluetoothAdapter.getDefaultAdapter();;(2)注册一个发现设备的回调函数getActivity().registerReceiver(mBroadcastReceiver,intentFilter);(3)开始搜索设备:mB

2016-09-10 11:27:34 1248

转载 手机蓝牙各类服务对应的UUID(常用的几个已通过验证)

ServiceDiscoveryServerServiceClassID_UUID = '{00001000-0000-1000-8000-00805F9B34FB}' BrowseGroupDescriptorServiceClassID_UUID = '{00001001-0000-1000-8000-00805F9B34FB}' PublicBrowseGroupServiceCla

2016-09-10 11:26:04 7213

转载 WiFi基本知识

1. IE802.11简介标准号IEEE 802.11bIEEE 802.11aIEEE 802.11gIEEE 802.11n标准发布时间1999年9月1999年9月2003年6月2009年9月工作频率范围2.4-2.4835

2016-08-12 17:49:28 477

转载 ARM Linux 3.x的设备树(Device Tree)

1.    ARM Device Tree起源Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正。在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach

2016-06-02 16:18:32 581

转载 android之MTP框架和流程分析

概要本文的目的是介绍Android系统中MTP的一些相关知识。主要的内容包括:第1部分 MTP简介            对Mtp协议进行简单的介绍。第2部分 MTP框架            介绍Android系统下MTP的框架。第3部分 MTP启动流程            详细分析MTP服务的启动流程,包括Java层, JNI层, kernel相关知识的介绍。

2016-05-01 14:42:45 707

转载 MTP in Android详解

MTP的全称是Media Transfer Protocol(媒体传输协议),它是微软公司提出的一套媒体文件传输协议。Android从3.0开始支持MTP。不过,在今天的智能手机领域内,Google和微软是一对冤家,为什么Android中会使用MTP呢?请看下文。一  背景知识介绍笔者相信《程序员》杂志的绝大多数读者或多或少都使用过MTP。因为早在智能手机普及前,数码相机和MP3播

2016-05-01 10:15:09 886 1

转载 V4L2 soc camera 分析 - 系统架构图

V4L2 soc camera 分析 - 系统架构图图1 soc camera 子系统 系统架构图Soc camera sub-system对应着drivers/media/video/下的soc_camera.c soc_camera_platform.cSoc camera host 是host端实现,是由平台厂商实现的,向上实现soc_camera_hos

2015-11-21 21:34:18 3822

转载 Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别

简单来说,YUV: luma (Y) + chroma (UV) 格式, 一般情况下sensor支持YUV422格式,即数据格式是按Y-U-Y-V次序输出的RGB: 传统的红绿蓝格式,比如RGB565,其16-bit数据格式为5-bit R + 6-bit G + 5-bit B。G多一位,原因是人眼对绿色比较敏感。RAW RGB: sensor的每一像素对应一个彩色滤光片,滤光片按B

2015-11-21 21:22:38 659

转载 最全的Android源码目录结构详解

Android 2.1|-- Makefile|-- bionic                        (bionic C库)|-- bootable                (启动引导相关代码)|-- build                        (存放系统编译规则及generic等基础开发包配置)|-- cts                  

2015-09-21 18:08:34 490

转载 android之ION内存管理器(2)-- cache

ION如何实现buffer共享的思路倒是很清晰的,但是深入代码研究,发现ION是依赖于DMA Mapping的,而DMA mapping模块对我而言还是挺复杂的,看这个模块遇到的第一个问题就是cache。既然是DMA mapping,直接将申请的buffer设置为non-cacheable不就行了?这样就可以保证CPU通过DMA读写缓冲区的一致性了。为什么还有Consistent DMA mapp

2015-09-21 18:06:43 571

转载 android之ION内存管理器(1)-- 简介

为什么需要ION回顾2011年末[2],LWN审查了android kernel patch[3],以期望将这些patch合并到kernel主线中。但是PMEM(android实现的 一个内存分配器)使这个愿望破灭了。为什么PMEM不被linux 社区接受的原因在[3]中有讲到。从那开始,PMEM很明确会被完全抛弃,取而代之的是ION内存管理器。ION是google在Android4.0 IC

2015-09-21 18:05:30 728

转载 linux设备驱动之总线、设备、驱动

linux设备驱动的难点在于复杂的,庞大的结构。理清楚结构和一个结构与另外结构的关系,以及linux设备驱动的层次性和层次封装抽象性。对于linux设备驱动的结构有点像C++中的类,而层次与抽象有点像继承的关系。一、总线、设备、驱动的主要三个结构关系structbus_type ---------------------------------    struct bus_type

2015-07-18 11:00:35 580

转载 Android 系统默认参数的修改

Android 系统默认参数的修改一般在新项目开始之初,我们需要针对客户需求进行各种系统默认属性的配置,通常这些属性都是通过build.prop、settings.db 、default.xml、一些功能package下的 config.xml 等来进行初始化配置的。那么,要满足客户的定制需求,对于我们开发者来说,修改SettingsProvider默认值,而第一次开机时,用来填充sett

2015-06-29 16:47:25 6145

转载 解决Android加载图片时内存溢出的问题

尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。 因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的so

2015-04-29 16:10:33 476

转载 Bitmap的生成流程之BitmapFactory.decodeResource VS BitmapFactory.decodeStream

BitmapFactory.decodeResource和BitmapFactory.decodeStream,相信对于有过android app开发经验的人来说都是很熟悉了。关于Bitmap的OOM问题,网上也有很多文章进行了分析,不少文章都说为避免OOM,最好使用BitmapFactory.decodeStream,但是具体说明原因的我至今没有找到,所以趁着10.1期间有空,就调查了一番,希望

2015-04-29 16:09:56 733

转载 关于build.prop原始Dalvik虚拟机设定与调整

1.dalvik.vm.heapstartsize=8m(表示应用程序启动后为其分配的初始大小为8m)这里分配的内存容量会影响到整个系统对RAM的使用程度,和第一次使用应用程序时的流畅程序。这个值越大,系统消耗RAM则越快,但是应用程序打开后的反应也越快。值越小,系统的RAM剩余则越多,但是程序在启动后会比较慢。2.dalvik.vm.heapgrowthlimit=64m(每

2015-04-29 16:07:58 1813

转载 android 动态库死机调试方法

简要说明:android系统中调试Java非常容易,一般遇到错误都在logcat中打印出错时函数的调用关系,而C库中出错时只看到一些二进制信息,使用gdbserver调试环境搭建又比较复杂。方法一:下在介绍一个简单的调试库的方法,当然需要有so库的源代码举例a)         错误信息如下,它表示了出错时的函数调用关系(下面调上面的)I/DEBUG  

2015-04-29 16:05:13 482

转载 安卓开发之常见死机问题--log分析

一般在平时工作中,基本上很多代码可以在eclipse+ndk进行调试,但如果需要用到具体的硬件设备,如媒体播放设备无法模拟的情况下,只能上硬件(盒子或手机)上进行调试。此时唯一的调试手段就是logcat产生log信息进行分析问题了。  什么时候会有Log文件的产生 ?一般在如下几种情况会产生log文件 。  1、程序异常退出 uncaused exception  2、程序强制关闭 F

2015-04-29 15:48:45 461

转载 FAT over NAND Flash

引子最近有一个项目需要在NAND FLASH裸片上建立文件系统,由于必须通过USB给Windows访问,所以FAT是唯一的选择。由于FAT不是为Flash设计,因此需要透过FTL(Flash Translation Layer)来访问NAND FLASH。 原本以为FTL的支持在嵌入式Linux下是很成熟的,因为在编译内核时,MTD下就有可选的FTL和NFTL可供选择,但是dig进去才

2015-01-28 16:31:27 680

原创 开机提示“Android正在升级...”

有时候我们对手机重新刷ROM后或者升级了某些程序开机时会显示"Android正在升级..."的提示,这个过程实际上是DalvikVM对程序进行优化的过程。Android启动时,Dalvik VM扫描所有的app,并为它们创建了一个依存关系库,DalvikVM通过这个依存关系树来为每个程序优化代码并存储在Dalvik缓存中(dalvik-cache),程序运行会使用优化过的代码。正常情况下手

2014-12-25 14:00:12 6258 2

转载 Android四大基本组件介绍与生命周期

Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。一:了解四大基本组件Activity :应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在Intent 的描述结

2014-11-28 18:27:11 430

转载 唤醒锁: 检测 Android* 应用中的 No-Sleep(无法进入睡眠)问题

摘要如果 Android* 应用使用唤醒锁不当,将会显著增加电池耗电量。 在本文中,我们将介绍一些提示和技巧,帮助您了解如何确认与误用唤醒锁有关的 No Sleep 漏洞。1. 介绍2. 唤醒锁2.1. 唤醒锁简介2.2. Android 用户唤醒锁2.3. Android 内核唤醒锁2.4. No-Sleep 漏洞3. 找出 No Sleep 漏洞3.1. 使

2014-07-04 19:05:24 821

转载 Android Sensor传感器系统架构初探

1. 体系结构2. 数据结构3. 四大函数本文以重力感应器装置G-sensor为例探索Android的各层次结构。1. 体系结构    Android的体系结构可分为4个层次。第一层次  底层驱动层,包括标准Linux,Android核心驱动,Android相关设备驱动,G-sensor的设备驱动程序即存在于此第二层次 Android标准C/C++库,包括硬件抽

2014-05-08 19:42:16 792

转载 Android系统Gps分析(一)

1 GPS架构2 GPS分析2.1头文件头文件定义在:hardware/libhardware/include/hardware/gps.h,定义了GPS底层相关的结构体和接口GpsLocationGPS位置信息结构体,包含经纬度,高度,速度,方位角等。[cpp] view plaincopy/** F

2014-04-19 22:17:51 978

转载 Android 如何修改Sim卡语言自适应

一、 系统设定默认语言规则系统预置语言,即在 makefile 文件中定义的语言;– 位置:mediatek/config/${Project}/ProjectConfig.mk,默认第一个是系统默认语言 刷机过后,开机重启,如果未插卡,系统语言为预置的语言;插入SIM卡过后,系统语言根据 SIM 卡来改变, 默认会把刷机过后第一次插的 SIM 卡的语言设置为默认语言;(如

2014-01-16 18:43:31 989

原创 Win7+Ubuntu12.04(EasyBCD硬盘安装)

根据网上文章和自己实践总结下win7+ubuntu12.04双系统的安装。准备工作:1)预留安装ubuntu的分区在win7下,在计算机上右键--管理--磁盘管理,预留出足够空间用于安装ubuntu的分区并把它删除。2)下载EasyBCD软件(2.2)和iso镜像(ubuntu-12.04-desktop-amd64.iso)3)安装easebcd并

2014-01-15 15:11:27 1010

转载 某Android 设备的物理存储(Nand)分区分析

只是记录自己的理解,难免有些错误,有时间会补充和更正。以某具体 android 设备为例(Cortex A9双核 + 4GB iNand + 1GB DDR3),记录获取该设备存储分区信息的方法,获取驱动设备信息,主要让大家有一个形象的认识,不涉及驱动具体实现(据说4层);本文是从iNand存储的角度出发理解分区信息(YAFFS2),涉及到基于RAM的文件系统(EXT4,VFS),仅限

2013-12-13 19:50:33 1794

转载 Android 4.0 Launcher2源码分析——导入eclipse进行调试

由于需要研究Android 4.0Launcher2的源码,必要的时候我们需要对代码进行调试,所以我们需要能够运行自己修改后的Launcher。由于Launcher是Android内置的应用,因此,可以通过搭建Android源码开发环境来进行调试和开发,这些工作只能在Linux和MacOS上进行,对于大多数习惯了windows和eclipse开发环境的程序员来说,能够在eclipse下进行

2013-11-22 19:34:32 767

转载 Android背光系统分析

转载两篇文章文章一1,总论背光模块属于HAL层开发,HAL层开发,用一句话来概括就是定义一个hardware.h中定义的名称为宏HAL_MODULE_INFO_SYM的hw_module_t结构体,然后实现结构体的相关内容2,驱动方面的准备简单的嵌入式linux驱动,编写LCD背光驱动,并提供接口给上层修改,我所用的是直接修改接口文件,接口如下:/sys/cla

2013-11-14 17:15:17 1783

原创 Ubuntu下svn客户端常用命令

Ubuntu下svn客户端常用命令1. 查看版本库下文件和目录列表:svn list path显示path目录下的所有属于版本库的文件和目录简称:svn ls2. import一个工程到版本库如将本地目录android_ori导入到版本库svn://192.168.101.47:8888/SmartPhone/svn import -m "New

2013-10-31 17:42:07 2166

转载 Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File

作为一个完成的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据存储方式。分别是:SharePreference、SQLite、Content Provider和File。由于Android系统中,数据基本都是私有的的,都是存放于“data/data/程序包名”目录下,所以要实现数据共享,正确方式是使用Content Provider。  SQLite: SQLit

2013-10-28 17:18:53 601

原创 Android中Proguard和JNI的相关问题

在Android项目中用到JNI,当用了proguard后,发现native方法找不到很多变量,原来是被produard优化掉了。所以,在JNI应用中该慎用progurad啊。解决办法: 1、在Android.mk中加入一行: LOCAL_PROGUARD_FLAGS := -include $(LOCAL_PATH)/proguard.flags 2、创建proguard

2013-10-26 10:37:29 707

转载 camera sensor readout position(flip/mirror)

预览过程:景物(sence)通过镜头(lens)生成的光学图像投射到图像传感器(sensor)上,图像以pixel为单位通过MIPI/DVP接口传输到VFE,经过external memory,最后经过MDP然后将图片显示到屏上。偶尔会出现这样情况:在屏上显示的图像方向不对。这是因为模组厂不严格根据sensor厂给出的sensor放置位置打样。一般情况是建议模组厂能

2013-10-22 23:41:20 1033

原创 “BUG: sleeping function called from invalid context at ......”(might_sleep函数说明)

我们在调试Linux kernel驱动时经常会遇到如下LOG信息:[   88.055297] BUG: sleeping function called from invalid context at ......这个错误就是在might_sleep函数中打印的,关于这个函数的说明,查了下资料归结如下:这个函数我在看代码时基本上是直接忽略的(因为我知道它实际上不干什么事),不

2013-10-12 23:53:08 12968

原创 android4.2代码目录结构说明

|-- abi:abi相关代码|-- bionic:C 库,比如libc, libm, libdl, dynamic linker 等等|-- bootable:基础库的源代码|-- build:系统编译和配置所需要的脚本和工具|-- cts:Android兼容性测试用例|-- dalvik:Java虚拟机|-- development:开发应用程序所需的模板和工具|-

2013-09-24 14:48:57 1149

原创 android ndk stack trace and crash log analyzer

一、How to read Android crash log and stack traceAndroid系统崩溃时常常会产生如下的crash log信息,这些信息可以通过"adb logcat"或者从/data/tombstones目录下找到对应的tombstones文件,这里简单描述了如何读懂这些信息以及如何通过工具将对应的地址翻译成symbol信息。crash log最开始是bui

2013-09-19 13:24:48 4177 1

转载 android平台打印函数调用栈的方法

打印调用栈是android平台问题定位的基本方法,如果需要知道谁在调用某个函数,可以在此函数中添加打印调用栈函数,弄清楚函数之间的调用关系。 1. Java层打印调用栈方法RuntimeException here = newRuntimeException("here");here.fillInStackTrace();Log.w(TAG, "Called: " + this

2013-09-11 15:49:33 3788

原创 Linux错误码及说明

#define EPERM   1 /* Operation not permitted */#define ENOENT   2 /* No such file or directory */#define ESRCH   3 /* No such process */#define EINTR   4 /* Interrupted system call */#defi

2013-09-05 19:23:03 1006

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除