
Android
文章平均质量分 79
余龙飞
刚柔并济,方显男儿本色。
展开
-
Android进程的内存管理分析
尊重原创作者,转载请注明出处:http://blog.youkuaiyun.com/gemmem/article/details/8920039最近在网上看了不少Android内存管理方面的博文,但是文章大多都是就单个方面去介绍内存管理,没有能全局把握,缺乏系统性阐述,而且有些观点有误。这样对Android内存管理进行局部性介绍,很难使读者建立系统性概念,无法真正理解内存管理,对提高系统优化和系统原创 2013-05-13 16:06:32 · 41104 阅读 · 33 评论 -
Android AsyncTask源码分析
尊重原创作者,转载请注明出处:http://blog.youkuaiyun.com/gemmem/article/details/8957111AsyncTask是一个抽象类,我们需要继承这个类,并实现抽象方法,在这个类的实现过程中需要定义3个类和执行4个方法。3个类分别是:1.Params:执行异步任务需要的参数2.Progress:异步任务后台执行中需要刷新的参数3原创 2013-05-21 20:18:40 · 4152 阅读 · 1 评论 -
Android中的HandlerThread的理解
定义类的代码:public class HandlerThread extends Thread { public void run() { mTid = Process.myTid(); Looper.prepare(); synchronized (this) { mLooper = Looper.m原创 2012-07-17 14:58:56 · 1978 阅读 · 0 评论 -
Android OOM介绍及分析方法
从早期G1的192MB RAM开始,到现在动辄1G -2G RAM的设备,为单个App分配的内存从16MB到48MB甚至更多,但OOM从不曾离我们远去。这是因为大部分App中图片内容占据了50%甚至75%以上,而App内容的极大丰富,所需的图片越来越多,屏幕尺寸也越来越大分辨率也越来越高,所需的图片的大小也跟着往上涨,这在大屏手机和平板上尤其明显。而且还经常要兼容低版本的设备。所以Android的转载 2013-05-23 11:23:32 · 6473 阅读 · 1 评论 -
Android的View和ViewGroup分析
尊重原创作者,转载请注明出处:http://blog.youkuaiyun.com/gemmem/article/details/77835251. 概念Android中的View与我们以前理解的“视图”不同。在Android中,View比视图具有更广的含义,它包含了用户交互和显示,更像Windows操作系统中的window。ViewGroup是View的子类,所以它也具有原创 2012-07-25 10:22:34 · 10280 阅读 · 0 评论 -
android安全:flag FLAG_RECEIVER_REGISTERED_ONLY的意义
尊重原创作者,转载请注明出处:http://blog.youkuaiyun.com/gemmem/article/details/8859493 做过时钟widget的朋友应该对ACTION_TIME_TICK都很熟悉,大家都用这个广播来更新UI界面上的时间,但是新版本的android中,却对TIME_TICK广播做了限制,系统不再允许在AndroidManifest.xml里面静原创 2013-04-27 16:23:06 · 11000 阅读 · 1 评论 -
Android.mk如何引入第三方jar包
尊重原创作者,转载请注明出处:http://blog.youkuaiyun.com/gemmem/article/details/8810480 使用eclipse的同学对于import jar应该是毫无压力的,但是很多同学(比如我)习惯使用linux来编译android apk,那么如何在linux环境下编译带有第三方jar包的app呢?关键在于如何修改Android.原创 2013-04-16 19:05:57 · 8207 阅读 · 0 评论 -
Android Android.mk文件各种模版参考
一、编译一个简单的APK LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # Build all java files in the java subdirectory LOCAL_SRC_FILES := $(call all-subdir-java-files) # Name of the转载 2013-04-16 18:32:21 · 3342 阅读 · 0 评论 -
Android task和affinity讲解
源文链接:http://appmem.com/archives/405本文参考了官方Dev Guide文档,简单介绍Android下的affinities和任务(task)。1、Activity和Tasktask就好像是能包含很多activity的栈。 默认情况下,一个activity启动另外一个activity时,两个activity是放在同一个task栈中的,第二个ac转载 2012-08-31 21:47:42 · 4219 阅读 · 0 评论 -
Android中使用硬件加速的技巧
http://www.uzzf.com/news/2060.html 从Android 3.0开始,Android 2D的绘制流程就设计为能够更好地支持硬件加速。使用GPU的View在Canvas上进行画的操作时都会使用硬件加速。在最新的Android版本里,图形硬件加速及绘制技巧得到了更好的提升. 1.Android 4.0硬件加速的使用 1.1 硬件加速的转载 2012-07-04 16:58:18 · 11371 阅读 · 0 评论 -
Android安全机制详解
1 Android 安全机制概述Android 是一个权限分离的系统 。 这是利用 Linux 已有的权限管理机制,通过为每一个 Application 分配不同的 uid 和 gid , 从而使得不同的 Application 之间的私有数据和访问( native 以及 java 层通过这种 sandbox 机制,都可以)达到隔离的目的 。 与此 同时, Android 还 在此基础上进行扩转载 2012-07-24 18:18:36 · 2033 阅读 · 0 评论 -
android ddms查看线程
本文转自: http://www.mobiletrain.org/lecture/doc/android/2011-05/457.html大家都用过ddm,如果你用ddms查看一个程序的所有线程,你会发现Signal CatcherHeap Workermain threadbinder thread #1binder thread #2那这些线程都是用来做什么的呢转载 2012-08-06 15:04:05 · 4524 阅读 · 0 评论 -
android Android.mk详细讲解
(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件,即要编译的文件。由于一般情况下Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式:LOCAL_PATH:=$(call my-dir)上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径。(2)Android.mk中可以定义多个编译模块,每个编译模块都是以in转载 2013-07-10 11:32:14 · 3968 阅读 · 0 评论 -
Android系统的性能调优参数介绍
在Android系统中有一个类似Windows系统注册表的文件build.prop。这个文件内定义了系统初始(或永久)的一些参数属性、功能的开放等。通过调整/增加参数可以达到较调系统性能偏重点和附加功能开启的作用。在Android 2.2、2.3、4.0中虽然每一版都有自己独有的参数,但绝大部分都是通用的,且可以起到关键性作用的。本文将以摩托手机Android 2.3系统为例,对Build.p转载 2013-07-10 15:08:13 · 7303 阅读 · 3 评论 -
终止Android中HandlerThread的方法
尊重原创作者,转载请注明出处:http://blog.youkuaiyun.com/gemmem/article/details/7932655如果我们在 activity中start了一个HandlerThread,那么这个线程会启动一个looper消息循环,当activity退出了,这个HandlerThread线程并没有终止,还是在那里做looper死循环,这当然不是我们愿意看到的。我们原创 2012-09-01 17:21:57 · 24563 阅读 · 9 评论 -
Android内存泄漏分析及调试
首先了解一下dalvik的Garbage Collection: 如上图所示,GC会选择一些它了解还存活的对象作为内存遍历的根节点(GC Roots),比方说thread stack中的变量,JNI中的全局变量,zygote中的对象(class loader加载)等,然后开始对heap进行遍历。到最后,部分没有直接或者间接引用到GC Roots的就是需要回收的垃圾,会被G原创 2013-10-25 11:31:33 · 43886 阅读 · 27 评论 -
Android Scroller类的详细分析
尊重原创作者,转载请注明出处:http://blog.youkuaiyun.com/gemmem/article/details/7321910 Scroller这个类理解起来有一定的困难,刚开始接触Scroller类的程序员可能无法理解Scroller和View系统是怎么样联系起来的。我经过自己的学习和实践,对Scroller的用法和工作原理有了一定的理解,在这里和大家分享一下,希望大原创 2012-03-05 18:02:52 · 49514 阅读 · 85 评论 -
Android自定义圆角ImageView
我们经常看到一些app中可以显示圆角图片,比如qq的联系人图标等等,实现圆角图片一种办法是直接使用圆角图片资源,当然如果没有圆角图片资源,我们也可以自己通过程序实现的,下面介绍一个自定义圆角ImageView的方法:package com.yulongfei.imageview;import android.content.Context;import android.content.res原创 2014-10-22 15:15:15 · 6615 阅读 · 5 评论 -
android安全:Android对开机自启动的限制
尊重原创作者,转载请注明出处:http://blog.youkuaiyun.com/gemmem/article/details/8859131谈到如何实现程序的开机自启动,我想大多数朋友都会认为小菜一碟,不就是注册一个BOOT_COMPLETED消息嘛!在AndroidManifest.xml里面加入一个receiver,就像这样:原创 2013-04-27 15:28:22 · 10204 阅读 · 2 评论 -
android安全:forceStopPackage对Alarm的影响
尊重原创作者,转载请注明出处:http://blog.youkuaiyun.com/gemmem/article/details/8858461也许一些使用alarmmanager做定时任务的同学遇到过这样的问题:设定alarm后,进入设置-->应用程序管理-->强行停止app后,定时任务就失效了。简单的讲就是:force stop会导致alarm失效。最典型的例子原创 2013-04-27 14:43:59 · 7146 阅读 · 0 评论 -
android heapStartSize heapMaximumSize heapGrowthLimit heapSize说明
dalvik/vm/Globals.java代码片段:struct DvmGlobals { /* * Some options from the command line or environment. */ char* bootClassPathStr; char* classPathStr;原创 2013-09-25 12:07:17 · 9554 阅读 · 4 评论 -
android anr分析方法
一:什么是ANRANR:Application Not Responding,即应用无响应二:ANR的类型ANR一般有三种类型:1:KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应2:BroadcastTimeout(10 seconds)BroadcastReceiver在特定时间内无法处理完成3:Servi转载 2012-04-10 09:32:58 · 12998 阅读 · 2 评论 -
Linux环境下Android JNI程序的编译
尊重原创作者,转载请注明出处:http://blog.youkuaiyun.com/gemmem/article/details/8993493在android开发中,有时候需要编写一些C/C++代码,这时候就要用到JNI技术,我们需要将C/C++程序首先编译成so库,在java中通过native方法调用so库中的函数。有一种简单的方法就是首先单独编译so库文件,将它push到手机的system/li原创 2013-05-30 11:48:02 · 6397 阅读 · 0 评论 -
android中如何使用ViewRootImpl这个类
ViewRootImpl是一个和系统比较相关的类,一般程序开发可能不需要使用它,但是有时候为了实现一些高级功能,我们可以考虑使用ViewRootImpl这个类。举一个例子:在一般程序开发过程中,如果想得到当前View的touch事件的坐标x,y,我们一般会借助onTouch等回调函数,因为这些函数里面会带有系统传上来的MotionEvent参数,但是有些情况下,我们无法依赖这种onTouc原创 2013-08-14 18:10:05 · 12367 阅读 · 0 评论 -
Android 签名详解
在Android 系统中,所有安装 到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个 permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应用程序才能取得该权限。Android使用Java的数字证书相关的机制 来给apk加盖数字证书,要理解andr转载 2012-07-20 18:19:59 · 1347 阅读 · 0 评论 -
Intent原理分析
Android Intent原理分析目录1. Abstract2. Introduction3. Intent的架构4. Intent的发送过程4.1 Intent消息在发送进程的逻辑4.2 Intent发送在服务器端的执行4.2.1 进入消息队列之前4.2.2 进入消息队列后的处理4.转载 2012-07-19 20:36:47 · 2294 阅读 · 0 评论 -
Android logcat使用详解
android logcat命令 1. logcat -c 清除已有log信息 2.logcat -b main 显示主缓冲区的log logcat -b radio 显示无线缓冲区的log logcat -b events 显示事件缓冲区的log 3.logcat -f [filename] 将log保存到指定的文件中,例如 logcat -b转载 2012-03-08 22:04:54 · 1689 阅读 · 0 评论 -
Android开机画面
1. 介绍android开机画面由三部分组成,第一部分在bootloader启动时显示,第二部分在启动kernel时显示,第三部分在系统启动时(bootanimation)显示(动画)2. bootloader开机图片1) 一般使用rle格式图片,不同的android系统不同此图片可能放在不同位置,以下实例均以G1为例,G1放在splash分区中2)转载 2012-03-08 22:15:17 · 1359 阅读 · 0 评论 -
Activity UI显示的学习总结
大家都知道我们使用Activity来完成Android的UI编程。我们需要在Activity的OnCreate函数中调用setContentView( )来设置自己的UI布局。但这只是Android的UI显示系统的冰山一角,其实为了将这些UI元素显示到屏幕,Android实现了一套复杂的显示系统,下面是我对Activity显示UI的一些理解,纰漏之处还请大家指正: 1.原创 2012-03-03 17:32:42 · 2749 阅读 · 2 评论 -
深入理解Android消息处理系统——Looper、Handler、Thread
熟悉Windows编程的朋友可能知道Windows程序是消息驱动的,并且有全局的消息循环系统。而Android应用程序也是消息驱动的,按道理来说也应该提供消息循环机制。实际上谷歌参考了Windows的消息循环机制,也在Android系统中实现了消息循环机制。Android通过Looper、Handler来实现消息循环机制,Android消息循环是针对线程的(每个线程都可以有自己的消息队列和消息循环转载 2012-02-27 16:38:52 · 1369 阅读 · 0 评论 -
Android JNI编程提高篇之二
上文《Android JNI编程提高篇之一》中我和大家分享了局部引用的一些理解,本文我将继续和大家全局引用和弱全局引用的一些理解。这也可以作为我学习《Java Native Interface: Programmer’s Guide and Specification》一个总结,欢迎大家对本文的理解拍砖。全局引用 在所有引用中,我觉得全局引用是最好理解的一个了。为什么呢?主要和C转载 2012-02-24 11:32:38 · 2631 阅读 · 0 评论 -
Android JNI编程提高篇之一
Simon在拙文《Android JNI开发入门之二》中提到了,Android JNI开发的深入学习的一些资料和方法。最近Simon在学习《Java Native Interface: Programmer’s Guide and Specification》,在学习过程中发现在JNI规范中关于引用部分是最难理解的,恕Simon愚钝,看了两遍才对其思想略有理解,在此和大家分享我对JNI规范中引转载 2012-02-24 11:30:41 · 2184 阅读 · 3 评论 -
Android JNI开发入门之二
在上一篇文章《Android JNI开发入门之一》中,我介绍了Android应用程序(APK)怎样通过JNI调用Native C实现的共享库。本文将进一步介绍Android应用程序通过JNI调用Native C++实现的共享库,并实现一个和上文《Android JNI开发入门之一》相同功能的Helloworld应用程序。两套不同的API 前文已经提到,Android系统的转载 2012-02-24 11:23:13 · 1213 阅读 · 0 评论 -
Android JNI开发入门之一
JNI在Android系统中有着广泛的应用。Android系统底层都是C/C++实现的,上层提供的API都是Java的,Java通过JNI调用底层的实现。比如:Android API多媒体接口MediaPlayer类,其实底层通过JNI调用libmedia库。由于JNI的存在可以让我们重用很多已经存在C/C++的库,省去了重复开发的麻烦,并且可以利用很多开源的库(Android库中就有很多开源库,转载 2012-02-24 11:22:06 · 1338 阅读 · 0 评论 -
Android.mk文件详解介绍
Android.mk 编译文件是用来向 Android NDK描述你的 C,C++源代码文件的, 这篇文档描述了它的语法。在阅读下面的内容之前,假定你已经阅读了 docs/OVERVIEW.TXT 文件,了解了它们的脚色和用途。一、概述 一个 Android.mk file 用来向编译系统描述你的源代码。具体来说: (1) 该文件是GNU Makefile的一小部分,会转载 2012-02-24 11:54:04 · 5112 阅读 · 0 评论 -
AndroidManifest.xml文件详细讲解
一、关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent转载 2012-02-22 18:15:17 · 1141 阅读 · 0 评论 -
Android Intent原理分析
目录1. Abstract2. Introduction3. Intent的架构4. Intent的发送过程4.1 Intent消息在发送进程的逻辑4.2 Intent发送在服务器端的执行4.2.1 进入消息队列之前4.2.2 进入消息队列后的处理4.2.3 消息的分发过程4.2转载 2012-03-14 20:47:51 · 2468 阅读 · 0 评论 -
android 竖屏显示
本文转载,来自http://blog.youkuaiyun.com/knock,转载请保留本行 屏是LANDSCAPE的,要让它默认显示为PORTRAIT.1.kernel里要旋转FrameBuffer. 启动参数里加入fbcon=rotate:1 (0:正常屏; 1:顺时钟转90度; 2:转180度; 3:顺时钟转270度;)最后生成的autoconf.h里有类似项:#def转载 2012-03-16 11:09:52 · 1381 阅读 · 0 评论 -
android makefile and build system分析
前言:预计未来一致两年内移动互联网将会有很大的发展,必将孕育很多的机会,而Google 推出的Android 手机操作系统无疑将是移动互联网中的明星。由于其是开源系统,很有必要对此进行深入研究。 工欲善其事,必先利其器。Makefile无疑是打开系统架构的一扇窗户。但因Android的Makefile (build system)文件众多,架构复杂,分析起来较为困难。本文梳理了build s转载 2012-03-14 21:11:21 · 976 阅读 · 0 评论 -
Android 权限介绍
Android是一个权限分离的操作系统,每个应用以唯一的身份标识(Linux用户ID和组ID)运行。系统的不同部分也分成不同的身份。因而Linux把应用之间以及应用与系统之间相互隔离起来。附加细粒度的安全功能是通过一个“许可”的机制,限定特定的进程能够执行指定的操作以及给予对每一个资源点对点的访问的URI许可。安全体系结构Android安全体系结构设计中心是没有任何一个应用程序在默认情转载 2012-07-19 19:51:16 · 2025 阅读 · 0 评论