
Android
文章平均质量分 85
lifeshow
这个作者很懒,什么都没留下…
展开
-
Android漫游记(3)---重定位之GOT & PLT & R_ARM_JUMP_SLOT
Android系统的动态链接工具是/system/bin/linker(一般的Linux系统是ld.so),虽然名字不同,但是基本的动态链接过程是类似的。需要注意的一点是,Linux一般是Lazy,即所谓的“懒”加载方式,但是Android系统有点区别,是非Lazy方式,即所有的重定位操作,在进程首次执行以前已经全部完成。这大概也是Android应用首次启动比较慢的原因之一吧! 关于Android系统的PLT和GOT可以写上一篇高考作为,在这里就不提概念性的东西了,网上有一篇博文:http://ww原创 2014-06-09 18:27:51 · 8530 阅读 · 2 评论 -
Apache Cordova-Android框架原理研究笔记 I
由于工作原因,笔者对于所谓的Hybrid、Webpp开发模式产生了浓厚的兴趣。老习惯,笔者对于Apache Cordova(PhoneGap)框架进行了一番研究,小有收货,特此记录下来。先看一张图,这是官网上对于Cordova总体框架架构的描述: 第一部分:Cordova Application是Cordova框架独立于不同手机操作系统的一个封装层。具体包括 1)Web app(包括具体的a原创 2016-03-31 18:03:39 · 8514 阅读 · 0 评论 -
Android漫游记(4)---.so文件动态调试一例
Android平台的动态调试一直以来是个困扰我等Coder的头疼问题,特别是对于本地的动态调试支持,可以说是“弱智”级别的,不知道Google的新版NDK和新出的Android Studio对这块支持如何,让我们拭目以待。 言归正传,我这里采用的是cygwin+ndk-gdb的调试模式,灵感来自于XDA的一篇博文(点击打开链接),平台和原文作者不同:原创 2014-06-21 12:14:36 · 24236 阅读 · 8 评论 -
Android漫游记(2)---ELF可执行文件格式
ELF是类Unix类系统,当然也包括Android系统上的可执行文件格式(也包括.so和.o类文件)。可以理解为Android系统上的exe或者dll文件格式。理解ELF文件规范,是理解Android系统上进程加载、执行的前提。下面我们就来一步步了解这ELF到底是个啥玩意儿(以Arm 32 ELF格式为主)!当然,网上关于ELF的介绍已经非常多,最好的手册还是直接看ELF官方的手册,我这里只是对ELF的文件做个纲领性介绍,然后直奔主题,比如.GOT .PLT或者R_Arm_Jump_Slot,R_Arm_R原创 2014-06-07 18:39:16 · 8146 阅读 · 2 评论 -
Android漫游记(5)---ARM GCC 内联汇编烹饪书(附实例分析)
关于本文档 GNU C编译器针对ARM RISC处理器,提供了内联汇编支持。利用这一非常酷炫的特性,我们可以用来优化软件代码中的关键部分,或者可以使用针对特定处理的汇编处理指令。 本文假定,你已经熟悉ARM汇编语言。本文不是一篇ARM汇编教程,也不是C语言教程。翻译 2014-06-24 17:43:48 · 5885 阅读 · 1 评论 -
Android漫游记(6)---APP启动之旅(I)
我们从Kernel层简单说明: 1、Kernel层:基于Linux2.6+内核,同时做了一些嵌入式环境做了一些针对性的优化调整。 2、Libraries层:包括Bionic C库,以及HAL(硬件驱动接口抽象)等API。 3、Android Runtime(ART)层:包含核心应用库和Dalvik虚拟机。 4、Application Framework层:纯JAVA的API框架,包括Activity Manager和Windows Manager等。 5、Applic原创 2014-07-15 17:37:15 · 4624 阅读 · 2 评论 -
Android入门-Hello World
Android Hello World实例介绍一、安装开发平台和工具1、Android SDK安装;2、Eclipse(ADT Plugins)安装;二、AVD创建打开Android SDK And AVD Manger,创建一个AVD(And原创 2011-09-21 17:21:59 · 6743 阅读 · 0 评论 -
Media-媒介(媒体、介质)【译】
Media-媒介(媒体、介质) Android支持定制的媒介解码器,需要将定制的解码器接口暴露给框架。 Android针对集中常见的媒介格式,提供一套本地的解码引擎-Stagefright。Stagefright提供音频和视频播放功能,包括OpenMax解码交互、会话管理、时间同步渲染、传输控制和DRM。此外,Stagefright可以集成针对特定硬件的解原创 2013-10-29 15:04:25 · 6357 阅读 · 0 评论 -
Android系统底层架构【译】
Android系统底层架构 设备移植 Android提供了设备移植和支持方面有较大的自由度,可以制定自有的设备规范和驱动。通过硬件抽象层(HAL-Hardware Abstraction Layer),可以在底层硬件驱动和上层平台之间建立关联(Hooks)。Androind通过自身的开源性,来支持各种类型的设备发展。 为了确保你原创 2013-10-25 11:27:52 · 17597 阅读 · 1 评论 -
Android漫游记(1)---内存映射镜像(memory maps)
Android系统内核基于Linux2.6+内核,因此,其在进程内存管理方面的很多机制和Linux是很相像的。首先,让我们来看一个典型的Android进程的内存镜像(App进程和Native本地进程略有差别,但原理是一样的):和Linux一样,Android提供了基于/proc的“伪文件”系统来作为查看用户进程内存映像的接口(cat /proc/pid/maps)。可以说,这是Android系统内核层开放给用户层关于进程内存信息的一扇窗户。通过它,我们可以查看到当前进程空间的内存映射情况,模块加载情况以原创 2014-06-07 12:10:06 · 14836 阅读 · 1 评论 -
Apache Cordova-Android框架原理研究笔记 II
上一篇笔者简要分析了Cordova从JS端->Native端的调用过程(以JS Object桥为例)。本章让我们来分析下这个过程的反面,也就是从Native端->JS端,Cordova是如何处理的。老习惯,我们先看一段代码: exec.jsnativeToJsModes = { // Polls for messages using the JS->Native bridge.原创 2016-04-01 16:30:58 · 2301 阅读 · 1 评论