tt_mc

导航

01 2012 档案

关于使用Eclipse调试Launcher的完美解决方法
摘要:由于在Android源码中,很多方法、成员、类、包都被打上@hide标签,这些成员在SDK中没有公开,以至于在编译Launcher源码时最常遇到的类android.view.View的成员mScrollX无法访问。下面说说如何解决这个问题。1,准备好编译后的Android源码。2,在该源码的out目录下寻找包含你所用隐藏类的jar文件,通常文件名为classes.jar。例如framework的jar文件为out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar。3,在eclipse的Android项目中, 阅读全文

posted @ 2012-01-31 23:19 tt_mc 阅读(835) 评论(0) 推荐(0)

anandroid activity的启动模式 《转》
摘要:在Android平台上可以将task简单的理解为幽多个Activity共同协作完成某项应用,而不管Activity具体属于哪个Application,通过下图可以更清晰的理解Application、task、Activity三者之间的关系Task和Activity相关 这段时间在做一个项目,发现对Task和Activity掌握的还是不牢固。把相关知识整理在这里,方便查阅,有几个Flag没看明白啥意思,也没测试出来效果如何。。。 android:allowTaskReparenting 用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台.. 阅读全文

posted @ 2012-01-31 14:34 tt_mc 阅读(3251) 评论(0) 推荐(0)

android中Invalidate和postInvalidate的区别
摘要:Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。 Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面。 1,利用invalidate()刷新界面 实例化一个Han... 阅读全文

posted @ 2012-01-30 15:08 tt_mc 阅读(55013) 评论(3) 推荐(5)

Android Looper和Handler
摘要:Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。 Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。 MessageQueue:消息队列,用来存放Handler发送过来的消息,并按照FIFO规则执行。当然,存放Message并非实际意义的保存,而是将Message以链表的方式串联起来的,等待Looper的抽取。 Looper:消息泵,不断地从MessageQueue... 阅读全文

posted @ 2012-01-30 14:09 tt_mc 阅读(49330) 评论(5) 推荐(14)

转载网上的面试题
摘要:Android面试题1.下列哪些语句关于内存回收的说明是正确的? (b ) A、程序员必须创建一个线程来释放内存B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 2.下面异常是属于Runtime Exception 的是(abcd)(多选) A、ArithmeticException B、IllegalArgumentException C、NullPointerException D、BufferUnderflowException 3.Math.round(11.5)等于多少(). Math.round(-11.5)等于 阅读全文

posted @ 2012-01-16 11:48 tt_mc 阅读(2032) 评论(1) 推荐(0)