Android
文章平均质量分 72
zouxueping
老程序员,老想做架构师
展开
-
Android 多个APK共享数据(Shared User ID)
Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户 (Android 系统是基于Linux)的. 所以不同APK(用户)间互相访问数据默认是禁止的. 但是它也提供了2种APK间共享数据的形式: 1. Share Preference. / Content Provider APK可以指定接口和数据给任何其他APK读取. 需要自己实现接转载 2010-05-06 13:22:00 · 982 阅读 · 0 评论 -
关于android2.3的overscroll
IOS上的bounce功能给人的感觉很爽,当一个可以滚动的区域被拖到边界时,它允许用户将内容拖过界,放手后再弹回来,以一种非常棒的方式提示了用户边界的存在,是IOS的一大特色。android2.3新增了overscroll功能,听名字就知道应该是bounce功能的翻版,但也许是出原创 2011-09-29 12:14:24 · 22200 阅读 · 5 评论 -
探讨android图片资源的抖动处理和格式转换
android下图片资源从源图到显示需要经历三个步骤:使用aapt工具处理,图片解码,绘制。让我们按顺序一一探讨。android开发指南对位图资源有如下描述:Bitmap files may be automatically optimized with lossless原创 2011-09-23 10:23:08 · 7838 阅读 · 0 评论 -
关于Android的组件名
android是基于组件管理应用程序的,组件名作为一个组件的唯一标识,我却一直没有去仔细了解,真是惭愧。android的组件分两级管理,第一级是应用,每一个APK即对应一个应用,第二级是组件,即活动、服务、数据提供者或广播接收器。相应地,组件名也分为两级,第一级是包名,第二级原创 2011-08-20 11:36:09 · 3114 阅读 · 0 评论 -
应用程序如何获取系统权限
Android是一个多进程系统,每一个应用程序(和系统的组成部分)都运行在自己的进程中。通过进程ID,系统可以区分不同的应用程序和系统组件,并赋予不同的权限。更细粒度的安全特性则通过“许可”机制来提供,该机制能够对一个进程可执行的操作进行约束。 Android安全机制中的一个原创 2011-09-15 09:49:59 · 7727 阅读 · 2 评论 -
android下java的静态库和动态库
程序编制一般需经编辑、编译、链接、加载和运行几个步骤。在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多原创 2011-09-05 17:53:43 · 15898 阅读 · 3 评论 -
性能分析工具TraceView
解决性能问题主要依靠对系统机制特别是GUI系统和多线程机制的理解,但处理性能问题的第一步永远都是找到引起性能问题的瓶颈,万万不要还没走第一步,就一头扎进性能优化的泥潭。TraceView助你走好第一步。一、TraceView简介 TraceView是转载 2011-09-06 00:50:30 · 3065 阅读 · 0 评论 -
如何发布你的功能模块
android系统的一项革命性的创新就是将所有应用程序的每个功能模块都变成系统的一个功能,可以供任意合法的应用程序使用。这个特性打破了以往的应用程序的边界,实现了彻底的组件化编程,写应用程序就跟搭积木一样,只需要将各个功能模块重新排列组合一下,这曾是无数老程序员的梦想。为了让原创 2011-09-05 10:58:34 · 3145 阅读 · 0 评论 -
内存分析工具MAT
简介: Eclipse提供的一个内存分析工具。它是一个功能丰富的 JAVA 堆转储文件分析工具,可以帮助你发现内存漏洞和减少内存消耗。官网地址:http://www.eclipse.org/mat 安装 (如果你使用的是MOTODEV Studio for And转载 2011-09-06 00:42:19 · 17985 阅读 · 2 评论 -
Android线程安全
Activity:运行于主线程。因Android的GUI是非线程安全的,所有界面相关操作必须在主线程中完成,又因为即时响应的需要,主线程中不能进行耗时长的操作,如果有些操作既耗时又需要操作界面,就用消息机制吧。开子线程处理耗时操作,需要操作界面时给主线程发消息,把界面操作限制在主线程中。好在Android的消息机制还是相当方便的。 Service:服务本体运行于主线程,但响应函数(就是onBind返回的对象的接口啦)就复杂了。如果跟客户在同一个进程的话,就直接在客户的线程中运行,否则就从服务所在进程维护的原创 2010-09-17 17:34:00 · 3837 阅读 · 0 评论 -
android系统本地码调试
一、编译GDB。 首先在http://ftp.gnu.org/gnu/gdb/下载GDB的源代码,解压到/usr/src/中。 cd /usr/src/gdb-7.2 ./configure --target=arm-linux make make install 如果出现如下错误: configure: error: no termcap library found make[1]: *** [configure-gdb] 错误 1 make[1]:原创 2010-09-11 00:50:00 · 4203 阅读 · 0 评论 -
Debugging with GDB
昨天使用的方案太烦琐,啥都要手工设置,实在折腾不下去了,今天翻墙去android的网站了解了android系统开发的调试手段。建议应用程序开发还是用2.2的NDK调试好了,调完了再改回老一点的版本就行了。下面实验一下系统开发的调试工作。 先给出最简步骤: cd android系统源码根目录 . build/envsetup.sh choosecombo adb forward tcp:5039 tcp:5039 另开一个控制台: adb shell ps adb shell gdbserve原创 2010-09-11 18:49:00 · 5022 阅读 · 0 评论 -
android view系统中无效区管理的bug
今天碰到这么一个问题,我有一个activity,布局如下: http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_p原创 2010-05-19 22:43:00 · 4641 阅读 · 2 评论 -
Android图形系统
这张图形系统构架图是用手机从书上拍下来的。以这张图为主线,咱们从下到上介绍各个模块。 SurfaceFlinger •SurfaceFlinger 是Android multimedia 的一个部分,在Android 的实现中它是一个service ,提供系统 范围内的surface composer 功能,它能够将各种应用 程序的2D 、3D surface 进行组合。 •在实际中对原创 2010-05-18 18:39:00 · 10075 阅读 · 0 评论 -
android density
为什么要引入dip —The reason for dip to exist is simple enough. Take for instance the T-Mobile G1. It has a pixel resolution of 320x480 pixels. Now image another device, with the same physical screen size,原创 2010-05-18 20:25:00 · 7588 阅读 · 3 评论 -
Android Display System --- Surface Flinger
转自一醉千年大大:http://blog.csdn.net/yili_xie/archive/2009/11/12/4803527.aspx SurfaceFlinger 是Android multimedia 的一个部分,在Android 的实现中它是一个service ,提供系统 范围内的surface composer 功能,它能够将各种应用 程序的2D 、3D surface 进行转载 2010-05-18 19:53:00 · 4472 阅读 · 0 评论 -
ANDROID GUI
花了一个星期研究GUI架构,这里把研究报告的PPT文档整理了一下,我的PPT文档向来只是个提纲,以后有时间再慢慢补上具体内容。 WindowManagerService源码位置:frameworks/base/services/java/com/android/server/WindowManagerService.java功能:1. (Ask SurfaceManager原创 2010-05-07 11:57:00 · 9209 阅读 · 0 评论 -
解决eclipse老是Refreshing external folders
在android调试时,一旦将android的源码attach上,以后程序稍有改动,就会发现每次编译前有很长时间的Refreshing external folders,让人不厌其烦。我找了很久才发现detach的位置,说不定哪位同学也有这问题,分享一下。 Select the Project | Preferences menu.Select Java Build PathExp原创 2011-11-23 11:35:00 · 18323 阅读 · 3 评论