![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android底层开发与调试
lovebeyond1014
这个作者很懒,什么都没留下…
展开
-
WIFI低功耗模式说明
Wifi在没有数据传输时,会进入standby mode。此时分两种情况:1、没有连接AP的情况下,wifi芯片会进入deep sleep,此时完全受控于主控,此时的功耗为uA级别;2、连接AP的情况下,wifi芯片会进入休眠模式,但是会自动起床检查数据,起床的周期取决于路由器AP的DTIM interval(该值依赖AP缓存数据的能力)。DTIM interval的值就是n个Beaco原创 2015-06-09 17:46:49 · 17114 阅读 · 4 评论 -
RK-Android方案编译与烧录升级指导
RK固件更新方法:方法一:使用SD卡更新将update.img拷贝到SD卡,然后重启后会提示有更新包,是否更新,点击更新即可;方法二:使用开发工具更新1、插好USB,并安装RK驱动rockusb驱动,打开DevelopTool_v1.37开发工具;2、按住Recovery按键,插上电源,此时RKDevelopTool_v1.37会提示发现RK设备;3、选定指定的区域更新,如原创 2013-11-15 16:05:23 · 3029 阅读 · 0 评论 -
MSHID->Linux KCL->Android KCL Mapping
Device-specific HID drivers and key maps may apply different mappings than are indicated here.HID Keyboard and Keypad Page (0x07)HID UsageHID Usage NameLKCLinux Key Code Name转载 2013-05-21 22:21:42 · 1999 阅读 · 0 评论 -
Android.mk的用法和基础
一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。选项参考以下文件:build/core/config.mk,默认的值在以下文件中定义:build/core/base_rules.mk。编译系统为转载 2013-11-20 13:04:59 · 975 阅读 · 0 评论 -
[Android调试基础四]键盘输入调试(输入监听与模拟发送)
键盘输入转换原理: 当有按键响应时,USB HID UsageID经过驱动转换为扫描的键值Scancode,android将scancode经配置表(如qwerty.kl)找到keycodelabel,然后由内部表KEYCODES列表找到keycode的数字值,再由keycode的数字值经字符配置表(如qwerty.kcm)找到对应的字符值。 调试方法: 输入监听原创 2013-05-20 16:36:49 · 5303 阅读 · 1 评论 -
Image uImage与zImage的区别
(1)、内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没转载 2013-06-24 13:45:56 · 992 阅读 · 0 评论 -
QT210烧写UBOOT到SD卡原理以及UBOOT启动
从s5pv210_irom_applicationnote_preliminary_20091126.pdf知道,s5pv210启动分BL0、BL1、BL2阶段。BL0是s5pv210内部IROM固化的代码,这段代码根据OM引脚配置状态来选择从哪个外部存储设备加载BL1段代码(实际上BL1代码就是我们编写的UBOOT的前8K代码,这段代码要包含完整的将后半部UBOOT代码复制和清bss段的功能,当转载 2013-06-20 23:36:57 · 1306 阅读 · 0 评论 -
Ubuntu12.04使用串口调试Android实现(硬件USB转串口PL2303+软件Minicom)
一、查看内核是否支持usb转串口2、minicom设置3、链接好Android开发板,重启系统注:1、如果不能正常链接,请检查串口先TXD-RX,RXD-TX,GND-GND是否正确,链接OK,可以看到时Onlie,而不是offline。如下附图:2、如果minicom打印乱码,输入gedit .bashrc,在最后增加export LA转载 2013-06-08 01:26:32 · 3740 阅读 · 0 评论 -
linux下arm交叉编译环境的建立
1.访问codesourcery官方网站下载最新的ARM交叉编译工具链,当前最新版本是arm-2009q3:http://www.codesourcery.com/sgpp/lite/arm/portal/package5383/public/arm-none-linux-gnueabi/arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gn转载 2013-06-17 00:54:01 · 1087 阅读 · 0 评论 -
Android 4.0源码目录结构说明
|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发包配置)|-- cts (Android兼容性测试套件标准)|-- dalvik (dalvik JAVA虚拟机)|-- development (应用程序开发相关)|-- external (转载 2013-06-04 15:26:14 · 2048 阅读 · 0 评论 -
LDD->HAL->JNI->APP Framworks Server->Java APK效果(参考老罗的Android之旅)
一、访问设备寄存器的方法效果=>通过proc文件系统来访问,通过传统的设备文件的方法来访问,通过devfs文件系统来访问。二、增加HAL层,增加JNI方法实现代码,添加HelloServer服务,写apk测试程序。注:1、增加Appfaramworks server后,改动framworks文件,此时用make snod后,可能会停留在android开机界面原创 2013-06-04 02:02:40 · 1728 阅读 · 1 评论 -
AllWinner-Android方案编译与烧录升级指导
lichee源码编译1、进入lichee目录。2、输入. buildroot/scripts/mksetup.sh #导入环境变量,根据提示选择对应选项3、mklichee #编译Android源码编译1、进入android目录2、. build/envsetup.sh #导入环境变量3、lunch #根据平台选择方案(sugar_ref001_eng)原创 2013-11-15 16:35:28 · 3626 阅读 · 0 评论 -
Android—GSensor驱动与HAL/Framework
1、驱动文件RANGE:(1)/* Range: unit(ug 1g=1 000 000 ug) option(2g,4g,8g) G would be defined on android HAL Precision: bit wide of valid data Boundary: Max positive count Gravity_step: gravit原创 2013-12-05 14:16:45 · 3193 阅读 · 0 评论 -
XZ压缩最新压缩率之王
xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具。之前xz使用一直很少,所以几乎没有什么提起。我是在下载phpmyadmin的时候看到这种压缩格式的,phpmyadmin压缩包xz格式的居然比7z还要小,这引起我的兴趣。最新一段时间会经常听到xz被采用的声音,像是最新的archlinux某些东西就使用xz压缩。不过xz也有一个坏处就是压转载 2013-12-13 21:36:39 · 1060 阅读 · 0 评论 -
Beacon Interval、DTIM
一 .Beacon Interval (信標間隔) 一般無線網卡都是做所謂的被動式掃描(passive scanning) ,當你開啟os下的無線網路管理程式 或是xp內建管理程式,無線網路卡其實都在從ISM 頻道一直輪番掃描。等待掃到 無線基地台的beacon 訊框 才會顯示一行行顯示現在這區域有哪些SSID.而基地台的Beacon 傳送頻繁frame 會比較佔用無線頻寬資源。B转载 2015-06-09 11:59:13 · 5687 阅读 · 0 评论 -
Android4.2.2下Stagefright多媒体架构中的A31的OMX插件和Codec组件
本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。欢迎和大家交流。qq:1037701636 email: gzzaigcn2012@gmail.com 在前面的博文中提到,AwesomePlayer::onPrepareAsyncEvent()开始进行Codec解码器组件的获取以及创建,这里和大家分享。1.以解码器实例作为切入点[cpp转载 2015-05-12 17:05:45 · 3014 阅读 · 0 评论 -
Ubuntu12.04安装jdk7
1、下载jdk7 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html2、将jdk拷贝到/usr/lib/jvm/目录下面(也可放在home等其他目录),这里如果没有jvm文件夹,则创建该文件夹,命令:sudo mkdir jvm //创建文件夹jvmsud原创 2014-01-09 13:58:12 · 1403 阅读 · 0 评论 -
Android手机助手识别机型浅析
最近在做PAD项目,QA提交了一个bug,用iTools管理PAD时,iTools显示的设备与目标机型的设备型号不一致,在其他豌豆荚,百度等手机助手并没有遇到这个问题。为了解决该问题,首先查询机器system目录下的prop.build中关于设备的说明是否有影响。主要包含: ro.product.model=型号_modle ro.product.brand=品牌_brand原创 2015-04-13 17:32:15 · 4472 阅读 · 0 评论 -
Git的Patch功能
UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过 Patch来提交代码的。作为最重要的开源项目之一,Linux,也是这样的。普通开发者从软件仓库clone下代码,然后写入代码,做一个Patch, 最后用E-mail发给Linux Kernel的维护者就好了。Git最初作为Linux的版本控制工具,提供了透明、转载 2015-04-02 17:54:37 · 1392 阅读 · 0 评论 -
gerrit客户端申请用户配置说明
1、 提供”username”与”password”给管理员2、 管理员开通权限后,用ssh登陆到编译服务器:sshusername@编译服务器ip3、 在编译服务器上用ssh-keygen生成公钥秘钥:ssh-keygen–C “备注名(如email)” ,保存文件名不变化,默认为id_rsa4、 把公钥id_rsa.pub发给管理员,(为方便识别发给管理员的公钥名字可重命名原创 2015-03-26 17:24:56 · 6241 阅读 · 0 评论 -
[Allwinner编译内核二]默认make menuconfig后,在mklichee时需重新配置的原因
前一篇博客说到的问题,经过补课后才知道,出现这个问题的原因。1、kernel目录下的Makefile中ARCH赋值方式为:export KBUILD_BUILDHOST := $(SUBARCH)ARCH ?= $(SUBARCH)CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)2、根目录下的Kconfig内容为:mainme原创 2014-01-10 13:28:05 · 3829 阅读 · 0 评论 -
[Allwinner编译内核一]mklichee默认编译与修改.config后带来的问题
引子: 在A20_SDK_1.0中增加linux驱动,因此需要修改.config文件,因此在linux目录下使用make menuconfig配置,配置结束后对lichee进行编译,出现重新配置问题,如图:解决方法: 经过不同的尝试,对代码结构不是很明白的情况下,用下面的方式避开了这个问题。1、解压后的linux3.3目录下是不存在.confi原创 2014-01-09 16:20:23 · 4162 阅读 · 0 评论 -
[Android环境搭建错误解决一]sun-java6-jdk 错误解决办法 “ Package 'sun-java6-jdk' has no installation candidate”
1、添加源:deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse。方法:sudo gedit /etc/apt/sources.list打开源列表,在最后一行添加deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse。保存退出。2原创 2013-05-24 21:31:01 · 2549 阅读 · 0 评论 -
UUcode编解码注意事项
前世今生: UUCode和MIME64产生的原因是这样的:在Email中,传输的必须是ASCII中的可见的文字(即英文、数字、标点等),这样的话,如果想在Email中传输一个二进制文件的话,就必须要先进行一种变换,把二进制文件变换成ASCII文件,然后才可以进行传输,然后再在收信人处进行反变换,解出原来的二进制文件,这一机制在Email的附件中广泛地被使用。而UUCode和MIME6原创 2013-12-24 14:21:35 · 2230 阅读 · 0 评论 -
android编译frameworkh后,开机停留在Android图标,无法完全进入os解决方法
最近在看frameworks里的源码,手痒了,便想改改看看效果,没想到改完后,模拟器却运行不起来了。 首先声明,我是用的android 4.0.3 ICS的源码,编译好后,利用编译好的镜像启动的模拟器,以前修改过里面的Launcher,将生成的Launcher.apk和Launcher.odex push后是成功的。现在我在frameworks/base/p转载 2013-06-04 00:43:42 · 2268 阅读 · 0 评论 -
android 幾個快速編譯images指令
Android比较重要的三个img文件:make systemimage - system.imgmake userdataimage - userdata.imgmake ramdisk - ramdisk.imgmake snod - 快速打包system.img (with this command, it will build a new system.img very quick转载 2013-06-04 00:40:49 · 944 阅读 · 0 评论 -
[Android环境配置五]Ubuntu12.04 Android Studio启动失败"Unrecognized VM option '+UseCodeCacheFlushing"
问题:lxc@lxc-pc:~/Developer/android-studio/bin$ ./studio.shJava HotSpot(TM) 64-Bit Server VM (build 10.0-b22, mixed mode)Unrecognized VM option '+UseCodeCacheFlushing'Could not create the Java v原创 2013-05-28 15:31:33 · 3155 阅读 · 1 评论 -
[Android环境搭建错误解决三]Android4.0.4源码编译常见错误及解决方法
以下是编译Android 4.0.4的常见错误,这些错误的解决办法收录自互联网。Google group有个专门的Android Building组,有兴趣的可以加入。################# Fix 1 ##########################Error:frameworks/base/include/utils/KeyedVec转载 2013-05-25 02:41:36 · 2302 阅读 · 0 评论 -
[Android环境搭建错误解决二]下载Android源码时,repo出现错误解决方法
具体下载源码到方法请详见:http://source.android.com/source/downloading.html#troubleshooting-network-issues今天用repo获取android源码:../bin/repo init -u git://android.git.kernel.org/platform/manifest.git出现问题:问题一:转载 2013-05-25 00:12:06 · 5778 阅读 · 0 评论 -
Android4.0.1源码及内核编译效果
源码编译环境配置参考:1、官网资料 http://source.android.com/source/initializing.html 2、http://blog.csdn.net/luoshengyang/article/details/6559955原创 2013-05-28 16:04:35 · 1041 阅读 · 0 评论 -
Android源码编译gcc版本过高解决办法
问题: Ubutn12.04 ,默认GCC版本为4.6. 在编译源码都时候提示host C++: obbtool :0:0: warning: "_FORTIFY_SOURCE" redefined [enabled bydefault] 解决方法:1 $sudo apt-get install gcc-4.42 $sudo apt-get in原创 2013-05-28 15:57:34 · 4502 阅读 · 0 评论 -
ubuntu下修改path三种方法
在 Ubuntu 系统中有两种设置环境变量 PATH 的方法。第一种适用于为单一用户设置 PATH,第二种是为全局设置 PATH。第三种方法适合于暂时修改,重新登录后失效第一种方法:在用户主目录下有一个 .bashrc 文件,可以在此文件中加入 PATH 的设置如下:export PATH=”$PATH:/your path1/:/your path2/…..”注意转载 2013-05-28 17:20:03 · 18271 阅读 · 0 评论 -
[Android环境搭建错误解决四]未解决dpkg: dependency problems prevent configuration of lib64z1-dev
lxc@lxc-pc:~$ sudo dpkg --configure -a[sudo] password for lxc: dpkg: dependency problems prevent configuration of lib64z1-dev: lib64z1-dev depends on lib64c-dev.dpkg: error processing lib64z原创 2013-05-27 00:43:08 · 2809 阅读 · 0 评论 -
[Android调试基础五]adb命令—文件复制与权限修改
Debug中需要替换一些system下的文件,通常system为read only,因此需要先修改操作权限为可读写,进入root后,su获得权限,在敲入命令:mount -o remount,rw / (mount -ro remount,rw /system),将目录下的文件属性修改为可读写。如下:其中adb push/pull分别为拷贝到目标机与从目标机拷贝。原创 2013-05-21 14:14:49 · 7856 阅读 · 0 评论 -
[Android调试基础三]Android adb中捕获桌面内容之方法
wifi链接以后,在eclipse的菜单栏Windows->Show View->Other->Device打开。原创 2013-05-19 23:34:35 · 1650 阅读 · 0 评论 -
[Android调试基础二]Android配置logcat
wifi链接以后,在eclipse的菜单栏Windows->Show View->Other->logcat打开。 可以自定义log监听内容,Filter中名字可以自己定义,后面的LogTag等根据实际填写,如果是监听apk程序,可以在最后一栏by Application Name中填写相应的package名称。可以在使用adb shell pm list packages打印出所原创 2013-05-19 23:28:48 · 1305 阅读 · 0 评论 -
Android系统Recovery工作原理之使用update.zip升级过程分析(一)---update.zip包的制作
作者:http://blog.csdn.net/mu0206mu/article/category/1059752 这篇及以后的篇幅将通过分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理。我们先从update.zip包的制作开始,然后是Android系统的启动模式分析,Recovery工作原理,如何从转载 2013-05-29 00:50:23 · 1353 阅读 · 0 评论 -
Linux JNI调用so动态库示例
作为主调方的Java源程序TestJNI.java如下。代码清单15-4 在Linux平台上调用C函数的例程——TestJNI.java1. public class TestJNI2. {3. static4. {5. System.loadLibrary("test转载 2013-05-29 00:27:49 · 1430 阅读 · 0 评论 -
gsensor架构和原理分析
本文主要描述了在android2.3平台G-sensor相关软硬件的体系架构和实现原理,按照Applications、Framework、HAL、Driver和Hardware五大层次分别介绍。1.系统架构 (Architecture)1.1 Android体系架构图1.2 Sensor子系统架构图 · Applicati转载 2013-05-29 00:35:05 · 1279 阅读 · 0 评论 -
HAL Stub框架分析<二>
1. HAL Stub框架分析HAL stub的框架比较简单,三个结构体、两个常量、一个函数,简称321架构,它的定义在:@hardware/libhardware/include/hardware/hardware.h@hardware/libhardware/hardware.c[cpp] view plaincopy转载 2013-06-03 17:56:21 · 1265 阅读 · 0 评论