
Android
文章平均质量分 94
thl789
这个作者很懒,什么都没留下…
展开
-
Android C++ STL最佳实践
《Android源码中的C++ STL》与《Android源码中C++ STL的namespace》以及《Android NDK中的C++ STL》分别介绍了Android源码中以及NDK环境下有哪些STL有些什么区别,本文主要讲述怎么选择STL,静态库/动态库如何选,有哪些注意点。本文虽针对Android讲解,其中观点亦适用于其他场景。原创 2020-12-12 11:49:38 · 3420 阅读 · 4 评论 -
[news]Github年度报告《The 2020 State of the Octoverse》
Github发布了2020年度运行报告《The 2020 State of the Octoverse》。披露了2020数据增长(开发者增长了56M+)、用户分布(北美最多,亚洲次之)、使用语言(JavaScript第一,Python由第三上升为第二,Java由第二下降为第三),以及其他报告。原创 2020-12-06 20:53:02 · 724 阅读 · 2 评论 -
Android NDK中的c++ STL
Android NDK(Native Development Kit)提供了一套基于c/c++开发Android应用的工具。基于c/c++开发需要STL (StandardTemplateLibrary/标准模版库),本文描述Android NDK中提供的STL。Android NDK开发是基于Android的,但是不绑定具体某一个Android版本,一个NDK发布版可以支持多个Android版本。NDK开发无论静态库还是动态库,libc++都是用NDK里的发布版本打包在应用里。原创 2020-11-26 00:00:48 · 9228 阅读 · 7 评论 -
Android源码中c++ STL的namespace
《Android源码中的c++ STL》中讲到Android Source中有内置的LLVM c++ STL和NDK的c++ STL,使用到这两个stl的时候如何区分呢?c++是用namespace隔离的,stl也是这样隔离的。本文逐步分析stl中如何用namespace隔离这两个stl,这也同时可以解惑stl使用者使用时找不到stl中的标号的问题的原因。原创 2020-11-22 10:13:44 · 4909 阅读 · 8 评论 -
Android源码中的c++ STL
Android源码中有内置的LLVM c++ STL和libstdc++标准库,为了支持内置的应用,也会选取NDK的标准库内置其中,本文介绍这些STL以及Android Source模块如何来指定其所要使用的标准库。原创 2020-11-20 22:20:00 · 5179 阅读 · 6 评论 -
多apk发布的Android程序的adb安装——adb install-multiple
多apk发布之所以然:多架构、多语言、多Layout;Google Play应用程序与手机匹配策略;adb install-multiple原创 2020-10-29 07:52:27 · 10285 阅读 · 5 评论 -
Android FactoryTest框架
田海立2012/10/9 本文简析Android内置的Factory Test(有测试模式/工厂模式/工程模式等叫法)框架,并非讲解FactoryTest中的每个测试该怎么写。 Android框架中已经对FactoryTest做了支持,通过一些配置和开发工作就可以把FactoryTest代码融入到Android系统中。 一、FactoryTest级别的定义Android系统中在com.androi原创 2012-10-09 19:06:02 · 15431 阅读 · 2 评论 -
Android中集成第三方软件包(.jar, .so)
田海立@优快云2012-08-28 Android中可能会用到第三方的软件包,这包括Java包.jar和Native包.so。jar包既可通过Eclipse开发环境集成,也可通过编译源码集成,看你的工作环境。 假定自己开发的程序为MyMaps,需要用到BaiduMaps的库,包括baidumapapi.jar和libBMapApiEngine_v1_3_1.so。 一、Eclipse中集成第三方原创 2012-08-28 23:18:46 · 40251 阅读 · 5 评论 -
Android中的菜单显示风格
田海立2012-9-13 本文以IconMenu为例,看菜单显示风格。根据需求替换或更改相应的资源就可以定制菜单的风格。Keywords: Menu MenuItem Theme Style Color 一、Menu风格相关的实现MenuBuilder(frameworks/base/core/java/com/android/internal/view/menu/MenuBuilder.java原创 2012-09-13 21:18:42 · 8605 阅读 · 1 评论 -
Android-Lint 检查问题列表
田海立2012-10-02 这里的Android-Lint所检查的问题列表是从AndroidSDK Tools r20.0.3 (ADT v20.0.3)中得来的默认的,执行下列指令即可得到:$lint --show$lint --list--show可获得详细列表(id,summary, priority, severity, category and details);--list仅可获得Is原创 2012-10-02 22:19:20 · 48610 阅读 · 2 评论 -
Eclipse环境下格式化Android的代码风格
田海立2012-10-05Google对Android的编程规范在Code Style Guidelines for Contributors中做了描述,并在Android源码中release了import和Java的配置文件android.importorder与android-formatting.xml。本文分析这些配置文件在Eclipse环境下格式化Android编码规范都做了什么,在Ja原创 2012-10-05 00:14:47 · 17720 阅读 · 7 评论 -
Android Provision (Setup Wizard)
田海立@优快云2012-7-30 Android中很多框架性的设计都已经存在了,但在市场上的发布版本里却因为没有很好的理解Android的设计意图而进行自己的定制,或者自己又做一个冗余的实现。Android中的Provision其实就是类似刚出厂时或者恢复出厂设置之后,一步一步引导用户完成各种设置的Setup Wizard程序。 在Android的原生代码中,Provision并没有被编译进系统原创 2012-07-30 20:04:34 · 12105 阅读 · 4 评论 -
Ubuntu10.10下编译Android2.2内核
Ubuntu10.10下编译Android2.2内核 田海立@优快云 2011/06/17环境:Ubuntu10.10 Android2.2.2_r1 android-gldfish-2.6.29 0 说明Android2.2的platform和kernel是分别的项目,要分别下载编译。本文是Ubuntu10.10 环境下android 内核(goldfish-2.6.29)的编译。 读者:希望原创 2011-06-17 23:24:00 · 4681 阅读 · 1 评论 -
WAP PUSH解析(1)——SMS PDU编码
田海立@优快云2012-06-29 WAP PUSH是封装在SMS PDU中的,所以要解析WAP PUSH,首先要先看SMS PDU编码,这是SMS / MMS / WAP PUSH等业务的基础。WAP PUSH是通过发送给终端的,所以本文主要看Delivery类型的PDU编码。另外,如果PDU要封装的内容过长,会接收到拆分过的多条SMS,本文对接收到的多条Concatenated SMS的拼接原创 2012-06-30 02:16:36 · 16763 阅读 · 8 评论 -
Android邮件中的Base64和Quoted-Printable编码
田海立@优快云2012-07-31 Email在网络上传输时,采用MIME(MultipurposeInternet Mail Extensions)。邮件传输只能传送US-ASCII字符,邮件中包含的其他字符必须通过一定的编码转换之后才能传输。对于Subject或/和附件名称为中文字符的邮件,有些邮件系统因为缺少编码(字符编码和传输编码)信息,导致乱码情况的发生。本文分析Android中Ema原创 2012-07-31 20:30:30 · 8581 阅读 · 1 评论 -
Android中选取并绑定AppWidget
田海立@优快云2012-08-18 Android添加一个窗口小部件的过程,实际是AppWidgetPickActivity为AppWidgetHost选取AppWidgetProvider并与之绑定的过程。一般地,Launcher扮演AppWidgetHost角色,AppWidgetProvider可以从系统中所有已安装的AppWidgetProvider列表中选取。本文描述AppWidget原创 2012-08-18 14:07:56 · 11266 阅读 · 2 评论 -
Android AppWidget核心之AppWidgetService
田海立@优快云2012-9-12 本文讲述Android中AppWidget系统的核心AppWidgetService。从AppWidgetService提供的外部接口、内部数据结构、初始化过程以及典型场景的实现等几方面来阐述。前面讲述AppWidget的诸文中已经讲到,AndroidAppWidget系统里的Host角色和Provider角色的实例通过AppwidgetHost/ AppWid原创 2012-09-12 21:07:25 · 11623 阅读 · 1 评论 -
Android中RemoteViews的实现
田海立@优快云2012-8-22 本文结合AppWidget的应用场景,分析Android中RemoteViews的内部具体实现。从前文《Android中AppWidget的分析与应用:AppWidgetProvider》和《Android中Launcher对于AppWidget的处理的分析:AppWidgetHost角色》中得知,Android中AppWidget的图形资源是由AppWidge原创 2012-08-22 06:40:39 · 26305 阅读 · 7 评论 -
Android中的广播也定向
田海立@优快云2012-8-20 广播机制是Android系统中最常用的机制之一。顾名思义,广播就是广播发出者说‘这有事情发生了,所有听众都听着…’。这听众就是注册了的侦听者,所以我们印象中广播接收者都是要么在AndroidManifest.xml中申明,要么在程序中通过Context.registerReceiver()注册。其实Android的广播也是可以定向的,发给指定的对象,而接收者并不原创 2012-08-20 21:09:55 · 5649 阅读 · 0 评论 -
用update-alternatives实现不同Android平台编译时的JDK选择
田海立@优快云 2012-1-19 Android不同平台在编译时,用到的jdk的版本不同,比如:Froyo(2.2)及其以前版本需要jdk5.0;Gingerbread及其之后版本需要jdk6.0。如果在一个环境中要做不同平台项目,就需要安装不同的jdk,切换项目时要反复安装jdk,费时费力。Update-alternatives为这种情况提供了解决方案。 本文只是针对《Ubuntu10.10原创 2012-01-20 17:31:23 · 3108 阅读 · 1 评论 -
搭建Windows下Android应用开发环境——Eclipse/Android/ADT
搭建Windows下Android应用开发环境——Eclipse/Android/ADT田海立@优快云2011/07/18Window下Android的应用开发环境,很早以前就在我的机器上搭建好过。不过时间久远了,都不知道放在哪里了,而且工具也基本都已经升级过了,今天又重新安装了一遍,发现安装的过程中还是会有些问题,特在此记录下来,以便回头查阅,也希望对别人能有所帮助。下载安装步骤可参照:htt原创 2011-07-18 22:48:42 · 26814 阅读 · 6 评论 -
解决下载Android源码时遇到的问题
本文解决公用IP(外网IP有限,经常发生在公司网络环境或虚拟机上)的机器下载Android源代码遇到的问题。注意本文只针对当前从android.googlesource.com下载源码时遇到的问题,因为网络和后续Android源码维护升级等因素,有时效性,并不能保证以后一定还起作用。利用五一假期期间,用家里的网络要把Android2.3,4.0都下载下来。但操作起来还真有遇到了问题。之前Andro原创 2012-04-30 16:29:40 · 16981 阅读 · 20 评论 -
【SUN/Oracle官方文档翻译+纠错】JAVA语言编码规范
翻译自SUN (Oracle)官方文档Code Conventions for the Java Programming Language并修正了原文html版本里的两处错误!欢迎转载,不过如果不能保持排版格式,转载编码规范请慎重! JAVA语言编码规范 1 介绍(Introduction)1.1 为什么要有编码规范(Why Have Code Conventions)编码规范对于程序员而言尤为翻译 2012-09-27 15:47:02 · 9116 阅读 · 3 评论 -
Google Play和基于Feature的过滤 —— Feature 参考手册
基于Feature的Google Play过滤规则中,当前Android支持(显式的和隐式的)的硬件和软件Feature List。翻译 2013-08-31 17:02:27 · 6415 阅读 · 1 评论 -
Android主线程里不允许网络操作
Keywords: Android UI线程/主线程 PENALTY_DEATH_ON_NETWORKAndroid API > 9 (Honeycomb及之后)版本里,对UI线程/主线程里是不允许联网操作的,如果有网络操作,会抛出NetworkOnMainThreadException的异常。1. Thread Policy里对网络的限制StrictMode.AndroidBlockGuardP原创 2013-08-30 18:09:55 · 10693 阅读 · 1 评论 -
Google Play和基于Feature的过滤
Google Play基于Feature的对Google应用商店里的应用程序的过滤规则,包含显式的Feature需求以及隐式的需求。如何查看一个apk应用里所需要的Feature列表。翻译 2013-08-31 15:22:26 · 4985 阅读 · 0 评论 -
Android中线程同步之MUTEX与Condtion的实现
田海立2013-08-10Android封装的同步类主要有MUTEX(AutoMutex)与Condition。前文分析了它们的外部使用,本文看它们是如何通过对pthread Mutex和Condition的封装实现的。遇到pthread的用法,可结合《pthread之MUTEX与Condition用法》一起看。Keywords: Mutex, Condition Variable, AutoLo原创 2013-08-10 16:45:02 · 8348 阅读 · 0 评论 -
Android中线程同步之Mutex与Condtion的用法
田海立2013-08-10Android封装的同步类主要有MUTEX(AutoMutex)与Condition。本文分析如何使用他们,具体的实现参见《Android中线程同步之MUTEX与Condtion的实现》与《pthread之MUTEX与Condition用法》。Keywords: Mutex, Condition Variable, AutoLock/AutoMutex, Android关原创 2013-08-10 16:04:47 · 16812 阅读 · 0 评论 -
Android中AppWidget的分析与应用:AppWidgetProvider
田海立@优快云2012-8-20 本文从开发AppWidgetProvider角度出发,看一个AppWidgetPrvodier在整个AppWidget体系中所扮演的角色。分析了AppWidgetProvider如何被AppWidget系统所识别;AppWidgetProvider何时/如何通过RemoteViews提供并更新数据;如何响应通过RemoteViews提供的PendingInten原创 2012-08-20 20:32:35 · 37358 阅读 · 7 评论 -
实现Android init中对属性作为参数的写入操作
田海立@优快云2013-3-31 事情的由来:Android很多系统的adb id是固定的,驱动一旦写好每个设备的id都是一样。有些需求要求adb的id每个设备都不同。adb id即是通过命令adb devices查看到的设备的id。这在Android4.0中已经实现,而实现的要点如下:1. 内核的Adb usb驱动中暴露出接口/sys/class/android_usb/androi原创 2013-03-31 18:49:40 · 7940 阅读 · 0 评论 -
Android OTA升级(2):开启升级过程
田海立@优快云2013-3-31 通过网络或直接本地获取到OTA升级包之后,通过程序就可开始Android的升级。本文描述这一过程。 在获取到OTA升级包之后,可以直接通过android.os.RecoverySystem.installPackage()开启OTA升级。RecoverySystem.installPackage()是在API-8之后加入的,使用它需要权限:android.Man原创 2013-03-31 19:11:45 · 15021 阅读 · 3 评论 -
Android OTA升级(1):编译升级全包
田海立@优快云2013-3-23 Android原生系统中就已经支持OTA升级。所谓OTA升级就是通过空中接口获取升级包,然后更新系统固件。一般地,升级包无论如何获取,哪怕是直接TCard本地升级,也被称为OTA升级。 OTA升级首要是生成OTA升级包,升级包又分为升级全包和升级差分包(或要增量包)。升级全包是编译当前系统得到的软件包,这个包很大,有上百兆,但是不依赖与当前手机原创 2013-03-31 19:02:44 · 21980 阅读 · 3 评论 -
WAP PUSH解析(2)——WSP以及WBXML编码
田海立@优快云2012-06-30 WAP PUSH业务是承载在SMS业务之上的,亦即WAP PUSH数据封装在SMS PDU的UserData中。本文分析PDU的UserData中WAP PUSH的WSP和WBXML的编码。 本文以《WAP PUSH解析(1)——SMS PDU编码》中已经讲解了SMS PDU封装的WAP PUSH数据为例来讲解WSP和WBXML的编码。SMS PDU封装在WS原创 2012-06-30 11:05:07 · 15173 阅读 · 6 评论 -
WAP PUSH解析(3)——Android中实现
田海立@优快云2012-06-30 Android中已经实现了SMS PDU的解析、WSP的解析,得到了WBXML封装的数据,并发出了广播"android.provider.Telephony.WAP_PUSH_RECEIVED"。原生实现中还没有对mimeType类型为WAP PUSH SI 和WAP PUSH SL 的该广播的响应,亦即,缺少对WBXML封装的PUSH数据的处理。本文通过分析原创 2012-06-30 20:02:52 · 14775 阅读 · 4 评论 -
Android AppWidget系统框架
田海立@优快云2012-8-17 本文简要描述AppWidget系统框架,并对AppWidget系统里的AppWidgetHost(IAppWidgetHost) / AppWidgetProvider / AppWidgetService(IAppWidgetService) / AppWidgetManager等组件做简要的阐述。Android中的AppWidget也就是“窗口小部件”,实现原创 2012-08-17 21:58:49 · 14299 阅读 · 13 评论 -
定制Android-Lint检查问题的现有规则
田海立2012-10-02 对Android-Lint发现的问题,我们需要进一步的处理:是确实存在的我们自己的设计问题,要解决它;对无关紧要或者是我们特别设计的问题,要在Android-Lint中忽略掉。要解决的问题需要具体问题具体分析,本文主要讲解在Eclipse环境和命令行下,如何忽略掉Android-Lint中检查出的问题,并在此基础上,根据项目的需要定制Android-Lint检查问题的规原创 2012-10-02 00:43:57 · 24703 阅读 · 8 评论 -
Eclipse中跟踪调试Android源代码
田海立@优快云2012-9-29 本文讲解如何在Eclipse中导入Android源代码(包括Framework和Application的代码),然后通过模拟器或真机跟踪/调试Android的Java代码,区别于一般基于Android SDK的纯应用开发,这里可以跟踪/调试Framework中的代码。 一、准备工作 确保机器上已经安装并配置下列软件环境:JDK/ Eclipse / Andro原创 2012-09-29 20:57:45 · 26798 阅读 · 14 评论 -
Ubuntu10.10下编译Android2.2平台
Ubuntu10.10下编译Android2.2平台 田海立@优快云 2011/06/17环境:Ubuntu10.10 Android2.2.2_r1 android-gldfish-2.6.29 0 说明 Android2.2的platform和kernel是分别的项目,要分别下载编译。本文是Ubuntu10.10 环境下Android2.2.2_r1平台(包含SDK)的编译。 读者:希望深原创 2011-06-17 22:36:00 · 5687 阅读 · 2 评论 -
Android-Lint:查错与代码优化利器
田海立2012-10-03 Android-Lint是SDK Tools 16 (ADT 16)之后才引入的工具,通过代码检查,可发现潜在的问题,并能对Android程序进行优化处理。Android-Lint提供了命令行方式执行,还可与IDE(如Eclipse)集成,并提供了html形式的输出报告。Android-Lint可以方便的与项目中的其他自动系统(配置/ Build / 测试等)集成。 A原创 2012-10-03 00:01:52 · 25102 阅读 · 10 评论 -
Android-Lint Issues
田海立2012-10-02 这里的Android-Lint所检查的问题列表是从AndroidSDK Tools r20.0.3 (ADT v20.0.3)中得来的默认的,执行下列指令即可得到:$lint --show$lint --list--show可获得详细列表(id,summary, priority, severity, category and details);--list仅可获得Is原创 2012-10-02 22:09:11 · 17137 阅读 · 0 评论