摘要: 当第一次启动一个Android程序时,Android会自动创建一个称为“main”主线程的线程。这个主线程(也称为UI线程)很重要,因为它负责把事件分派到相应的控件,其中就包括屏幕绘图事件,它同样是用户与Andriod控件交互的线程。比如,当你在屏幕上按下一个按钮后,UI线程会把这个事件分发给刚按得那个按钮,紧接着按钮设置它自身为被按下状态并向事件队列发送一个无效(invalidate)请求。UI线程会把这个请求移出事件队列并通知按钮在屏幕上重新绘制自身。Android单线程模型会在没有考虑到它的影响的情况下引起Android应用程序性能低下,因为所有的任务都在同一个线程中执行,如果执行一些耗 阅读全文
posted @ 2011-07-29 23:41 Colin Xie 阅读(356) 评论(0) 推荐(0) 编辑
摘要: http://yueguc.iteye.com/blog/806730google对于所有的类和API,分为开放式和不开放式两种。所谓的开放式就是javadoc所包含的,并不是java中有public和private,而是跟javadoc有关系,代码没有关系。在开放式的类中增加了一个变量,而又没隐藏,导致和原API的doc不一致造成的就会有错。通过提示,有2个方法可以解决该问题:1、将新增加的变量或方法加上"@hide" 的注释,注意一点,加"@hide" 不是简简单单的/*@hide */就行了,标准的javadoc要这样 /***/ 而且对于 for 阅读全文
posted @ 2011-07-26 22:16 Colin Xie 阅读(2950) 评论(0) 推荐(0) 编辑
摘要: 使用Android系统的手机设备,在长按电源开关后会出现一个对话框:静音模式,数据网络模式(数据流开关),飞行模式,关机。对于MIPS设备我们并不需要太多选项,关机是否就可以。Android系统的关机对话框弹出代码调用在:frameworks\policies\base\phone\com\android\internal\policy\impl\PhoneWindowManager.javaRunnable mPowerLongPress = new Runnable() { public void run() { mShouldTurnOffOnKeyU... 阅读全文
posted @ 2011-07-26 17:57 Colin Xie 阅读(2792) 评论(0) 推荐(0) 编辑
摘要: 1)两个进程AB,在需要进行通信时向/dev/binder mmap 一块虚拟内存区域,这个大小通常是数MB。2)当进程A要向进程B传递数据时,A使用ioctl操作/dev/binder,将数据传递给binder驱动。3)binder驱动依据A传递来的数据大小,申请合适的物理内存来存储这些数据。并在B mmap得到的虚拟内存区域中找到合适大小的虚存空间,然后修改B的内存映射表,使这段虚存空间映射到刚刚申请的物理内存。这样B就可以访问A传递进来的数据了 阅读全文
posted @ 2011-07-26 17:14 Colin Xie 阅读(247) 评论(0) 推荐(0) 编辑
摘要: build/envsetup.sh 脚本分析(lunch函数)lunch函数提供了一个菜单,让开发人员选择需要编译的目标产品(target product)和变体(variant),并做一些检查,设置环境变量,并打印出主要的环境变量。直接运行lunch(必须先运行 build/envsetup.sh,让lunch函数驻留到环境变量中)ning@ning-desktop:~/donut-compare/mydroid$ lunchYou're building on Linuxgeneric-eng simulator aosp_emulator_us-eng aosp_emulator 阅读全文
posted @ 2011-07-12 15:51 Colin Xie 阅读(876) 评论(0) 推荐(0) 编辑
摘要: 1、Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、Linux命令行下往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) 3、Linux命令行下将改动的文件提交到版本库 svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使 阅读全文
posted @ 2011-07-08 12:00 Colin Xie 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 原文http://bloodysofiya.blog.163.com/blog/static/11656234320103231352327/一般来说,当你拿到一包library的source code,要按照如下的方式开始:1.请仔细仔细的阅读Readme,以及各种文档.这里面包含了绝大部分你想要的东西。2.尝试的编译一个可以运行的版本出来看看效果。a.这时候你应该了解你要移植的库,是怎么编译的了吧?没有?Goto1:继续往下阅读 b.一般来说,sourcecode的编译会分成两种:<1>.只有一个Makefile,或者是有configure文件的。这种的,最好是你阅读makef 阅读全文
posted @ 2011-07-07 18:05 Colin Xie 阅读(1968) 评论(0) 推荐(0) 编辑
摘要: 1、 修改APK应用:在packages中的应用如果修改后都可以单独编译。先执行$. build/envsetup.sh #初始化$mmm packages/providers/ContactsProvider/##用mm/mmm来编译生成的.apk并不会打包到system.img中,需要我们手动通过make snod把system文件夹打包为system.img##可以使用make snod将模块打包到system.img中,也可以使用 adb install *.apk安装注:通过mmm packages/providers/ContactsProvider/ 编译后的apk在 out/. 阅读全文
posted @ 2011-07-07 14:26 Colin Xie 阅读(9444) 评论(1) 推荐(0) 编辑
摘要: Hierarchy Viewer是随AndroidSDK发布的工具,位置在tools文件夹下,名为hierarchyviewer.bat。它是Android自带的非常有用而且使用简单的工具,可以帮助我们更好地检视和设计用户界面(UI),绝对是UI检视的利器,但是好像很少有人提它,难道是因为太简单?http://blog.csdn.net/ddna/archive/2010/04/25/5527072.aspx具体来说主要功能有2个:1.从可视化的角度直观地获得UI布局设计结构和各种属性的信息,帮助我们优化布局设计;2.结合debug帮助观察特定的UI对象进行invalidate和request 阅读全文
posted @ 2011-02-12 09:36 Colin Xie 阅读(1438) 评论(0) 推荐(0) 编辑
摘要: “Python(派森),是一个简单的、解释型的、交互式的、可移植的、面向对象的超高级语言”。这就是对Python语言的最简单的描述。Python作为一种功能强大且通用的编程语言而广受好评,它具有非常清晰的语法特点,适用于多种操作系统,目前在国际上非常流行,正在得到越来越多的应用。Python强大的功能表现在:l编程语言  Python语言可以用来作为批处理语言,写一些简单工具,处理些数据,作为其他软件的接口调试等。Python语言可以用来作为函数语言,进行人工智能程序的开发,具有Lisp语言的大部分功能。Python语言可以用来作为过程语言,进行我们常见的应用程序开发,可以和VB等语言一样应用 阅读全文
posted @ 2010-12-25 11:39 Colin Xie 阅读(4328) 评论(0) 推荐(0) 编辑