网站开发与移动开发

博客园 首页 新随笔 管理

随笔分类 -  android

摘要:原文:http://mobile.51cto.com/hot-316799.htm首先傻蛋先画了个图来再来阐述一下WorkSpace的结构。如下图:点击查看大图桌面的左右滑动功能主要是在PagedView类中实现的,而WorkSpace是PagedView类的子类,所以会继承PagedView中的方法。当我们的手指点击WorkSpace时,首先就会触发PageView中的onInterceptTouchEvent()方法,会根据相应的条件来判断是否对Touch事件进行拦截,如果onInterceptTouchEvent()方法返回为true,则会对Touch事件进行拦截,PageView类的o 阅读全文
posted @ 2012-06-28 09:04 txf2004 阅读(229) 评论(0) 推荐(0)

摘要:原文:http://mobile.51cto.com/hot-314700.htm上一节我们研究了Launcher的整体结构,这一节我们看看整个Laucher的入口点,同时Laucher在加载了它的布局文件Laucher.xml时都干了些什么。我们在源代码中可以找到LauncherApplication, 它继承了Application类,当整个Launcher启动时,它就是整个程序的入口。我们先来看它们在AndroidManifest.xml中是怎么配置的。<applicationandroid:name="com.android.launcher2.LauncherAppl 阅读全文
posted @ 2012-06-28 09:03 txf2004 阅读(211) 评论(0) 推荐(0)

摘要:每次进入到android source 目录后的第一件事恐怕就是先执行. build/envsetup.sh,完成一些命令的初始化,今天主要分析envsetup.sh。1. 命令-也就是envsetup.sh中的函数view plaincopy to clipboardprint?functionhelp()#显示帮助信息functionget_abs_build_var()#获取绝对变量functionget_build_var()#获取绝对变量functioncheck_product()#检查productfunctioncheck_variant()#检查变量functionsetpa 阅读全文
posted @ 2012-06-21 16:58 txf2004 阅读(465) 评论(0) 推荐(0)

摘要:当图片过大,或图片数量较多时使用BitmapFactory解码图片会出java.lang.OutOfMemoryError: bitmap size exceeds VM budget,要想正常使用则需分配更少的内存,具体的解决办法是修改采样值BitmapFactory.Options.inSampleSize,例如:BitmapFactory.Options opts = new BitmapFactory.Options(); opts.inSampleSize = 4; Bitmap bitmap = BitmapFactory.decodeFile(imageFile, opts);如 阅读全文
posted @ 2012-06-21 16:55 txf2004 阅读(193) 评论(0) 推荐(0)

摘要:一、 一般命令1、 AT+CGMI 给出模块厂商的标识。2、 AT+CGMM 获得模块标识。这个命令用来得到支持的频带(GSM 900,DCS 1800 或PCS 1900)。当模块有多频带时,回应可能是不同频带的结合。3、 AT+CGMR 获得改订的软件版本。4、 AT+CGSN 获得GSM模块的IMEI(国际移动设备标识)序列号。5、 AT+CSCS 选择TE特征设定。这个命令报告TE用的是哪个状态设定上的ME。ME于是可以转换每一个输入的或显示的字母。这个是用来发送、读取或者撰写短信。6、 AT+WPCS 设定电话簿状态。这个特殊的命令报告通过TE电话簿所用的状态的ME。ME于是可以转换 阅读全文
posted @ 2012-06-21 13:54 txf2004 阅读(1356) 评论(0) 推荐(0)

摘要:http://changeyouforever.iteye.com/blog/1160038android:allowTaskReparenting 用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)——“true”,表示能移动,“false”,表示它必须呆在启动时呆在的那个Task里。 如果这个特性没有被设定,设定到<application>元素上的allowTaskReparenting特性的值会应用到Activity上。默认值为“false”。 一般来说,当Activity启动后,它就与启动它的Task关联,并且在那 阅读全文
posted @ 2012-06-20 19:57 txf2004 阅读(159) 评论(0) 推荐(0)

摘要:原作者:http://android.blog.51cto.com/268543/537684AIDL的作用 由于每个应用程序都运行在自己的进程空间,并且可以从应用程序UI运行另一个服务进程,而且经常会在不同的进程间传递对象。在Android平台,一个进程通常不能访问另一个进程的内存空间,所以要想对话,需要将对象分解成操作系统可以理解的基本单元,并且有序的通过进程边界。 通过代码来实现这个数据传输过程是冗长乏味的,Android提供了AIDL工具来处理这项工作。 AIDL (Android Interface Definition Language) 是一种IDL 语言,用于生成可以在An.. 阅读全文
posted @ 2012-06-20 09:39 txf2004 阅读(164) 评论(0) 推荐(0)

摘要:Fragment要点Fragment作为Activity界面的一部分组成出现可以在一个Activity中同时出现多个Fragment,并且,一个Fragment亦可在多个Activity中使用。在Activity运行过程中,可以添加、移除或者替换Fragment(add()、remove()、replace())Fragment可以响应自己的输入事件,并且有自己的生命周期,当然,它们的生命周期直接被其所属的宿主activity的生命周期影响。设计哲学 Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上--例如平板电脑上,支持更加动态和灵活的UI设计。平... 阅读全文
posted @ 2012-06-19 18:31 txf2004 阅读(215) 评论(0) 推荐(0)

摘要:通过手机的通知系统,可以将应用程序的一些重要消息告知给用户。流畅、舒适、友好的应用程序离不开精心设计的消息提醒机制。但是并不是所有的通知都是用户想看的,否则只会给用户造成骚扰,所以要谨慎使用通知。在对《Android Design》进行翻译时发现:Android 系统已经提出了一些关于通知消息的设计建议,故在此分享给大家。一、何时使用通知?通知主要用于对时间敏感(Time Sensitive)的事件,尤其是涉及他人(Involve another person)的同步事件。例如下面的 Gtalk 和日历发出的通知就是时间敏感,且与人相关的事件。那么什么时候又不应该使用通知呢?官方的建议是:不直 阅读全文
posted @ 2012-06-19 18:13 txf2004 阅读(192) 评论(0) 推荐(0)

摘要:Android 的系统属性包括两部分:文件保存的持久属性和每次开机导入的cache属性。前者主要保存在下面几个文件中:bionic/libc/include/sys/_system_properties.h1#definePROP_SERVICE_NAME"property_service"2#definePROP_PATH_RAMDISK_DEFAULT"/default.prop"3#definePROP_PATH_SYSTEM_BUILD"/system/build.prop"4#definePROP_PATH_SYSTEM_D 阅读全文
posted @ 2012-06-07 11:35 txf2004 阅读(227) 评论(0) 推荐(0)

摘要:Fragment 表现 Activity 中用UI的一个行为或者一部分. 可以组合多个fragment放在一个单独的activity中来创建一个多界面区域的UI,并可以在多个activity里重用某一个fragment.把fragment 想象成一个activity的模块化区域, 有它自己的生命周期, 接收属于它的输入事件, 并且可以在activity运行期间添加和删除.Fragment 必须总是被嵌入到一个activity中, 它们的生命周期直接被其所属的宿主activity的生命周期影响. 例如, 当activity被暂停,那么在其中的所有fragment也被暂停; 当activity被销 阅读全文
posted @ 2012-06-01 18:30 txf2004 阅读(270) 评论(0) 推荐(0)

摘要:关机动作从按键触发中断,linux kernel层给android framework层返回按键事件进入framework层,再从framework层到kernel层执行kernel层关机任务。长按键对应的handler代码:frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.javaRunnable mPowerLongPress;private final Runnable mPowerLongPress = new Runnable() { public void ru... 阅读全文
posted @ 2012-05-23 13:49 txf2004 阅读(381) 评论(0) 推荐(0)

摘要:Android布局是应用界面开发的重要一环,在Android中,共有五种布局方式,分别是:LinearLayout(线性布局),FrameLayout(单帧布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。 下面先分别介绍一下每种布局的基本概念,再用实例演示:LinearLayout:线性布局,可分为垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal" ),在LinearLayout 阅读全文
posted @ 2012-05-11 08:28 txf2004 阅读(246) 评论(0) 推荐(0)

摘要:static Comparator<File> comparator = new Comparator<File>() {public int compare(File f1, File f2) {if (f1 == null || f2 == null) {// 先比较nullif (f1 == null) {{return -1;}} else {return 1;}} else {if (f1.isDirectory() == true && f2.isDirectory() == true) { // 再比较文件夹return f1.getNam 阅读全文
posted @ 2012-05-10 11:49 txf2004 阅读(596) 评论(0) 推荐(0)