<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xjanker2</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xjanker2]]></copyright><item><title><![CDATA[讨论会3：Android用户研究及4.0界面设计分析]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/7631423</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/7631423</guid><author>xjanker2</author><pubDate>Mon, 04 Jun 2012 17:12:32 +0800</pubDate><description><![CDATA[Android用户研究及4.0界面设计分析 PPT下载完成Android用户研究及4.0界面设计分析难度：★洪涛2012.04.10预习资料： http://developer.android.com/design/index.html官方设计规范问题：与IOS和WP对比，有哪些不一样；与原来没有规范的情况下，新增哪些普遍的设计原则。]]></description><category></category></item><item><title><![CDATA[讨论会2：AsyncTask实现原理及性能调优]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/7631410</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/7631410</guid><author>xjanker2</author><pubDate>Mon, 04 Jun 2012 17:10:50 +0800</pubDate><description><![CDATA[AsyncTask实现原理及性能调优 PPT下载完成AsyncTask实现原理及性能调优★★叶锋2012.03.06预习资料： AsyncTask、ThreadPoolExecutor源码. 预热问题：有人说Android自带的AsyncTask存在不稳定因素因此而弃用它而自己封装一个线程池，真的是这样吗？你知道AsyncTask的原理是怎么样的，和线程池又有什么关系?]]></description><category></category></item><item><title><![CDATA[讨论会1：Android消息循环机制原理与实现]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/7631380</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/7631380</guid><author>xjanker2</author><pubDate>Mon, 04 Jun 2012 17:09:14 +0800</pubDate><description><![CDATA[Android消息循环机制原理与实现 PPT 下载状态研讨专题技术难度主持专家研讨时间问题搜集备注完成Android消息循环机制的原理及源码分析★★杨喆2012.01.05预习涉及的源码部分：Looper、Handler、Message、MessageQueue的实现、ActivityThread的部分实现 预热问题：对于一个ActivityA，在其中start Activity B后，A中的消息]]></description><category></category></item><item><title><![CDATA[深入Android系统【3】： Android UI的最基本组件 -- View 的设计原理及源代码分析]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/7047318</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/7047318</guid><author>xjanker2</author><pubDate>Tue, 06 Dec 2011 19:15:02 +0800</pubDate><description><![CDATA[UI控件的最基本类View、ViewGroup树common operations: set properties focus listeners visibilityframework responsible for measuring, laying out and drawing views]]></description><category></category></item><item><title><![CDATA[Android Trick 14： proguard导致签名后的apk报错：ClassNotFoundException 的问题解决]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6888479</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6888479</guid><author>xjanker2</author><pubDate>Wed, 19 Oct 2011 17:25:07 +0800</pubDate><description><![CDATA[发布在Android Market上的apk应用需要经过签名，签名的时候如果存在proguard.cfg并且在default.properties里边启动了proguard：proguard.config=proguard.cfg，那么在签名打包时会使用proguard对代码进行压缩、优化和混淆。在使用时遇到了一些问题，首先，随Android SDK自带的默认的proguard4.4？，签名后的a]]></description><category></category></item><item><title><![CDATA[Android Trick 13： 改变一个apk的packagename的简单流程，就2个步骤]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6872807</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6872807</guid><author>xjanker2</author><pubDate>Fri, 14 Oct 2011 11:04:21 +0800</pubDate><description><![CDATA[由于某些原因，要把PackageName改成一个新的名称。以前找不到流程，嫌麻烦最后没改。你可能回想着很多步骤，首先：1. 在包名上点右键-->refactor-->rename2. 在AndroidManifest.xml里运行Android="http://schemas.android.com/apk/res/android"      package="com.newpakageName"]]></description><category></category></item><item><title><![CDATA[深入Android系统【2】：launchMode （Instance）深入理解]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6853036</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6853036</guid><author>xjanker2</author><pubDate>Thu, 13 Oct 2011 20:14:21 +0800</pubDate><description><![CDATA[前文Android Trick 4中已经对launchMode做了简介，近来使用中发现了一些理解不够的地方，特写出来和大家交流。

standard、singleTop、singleTask、singleInstance。


看SDK文档后，发现也不是很好理解上面几个]]></description><category></category></item><item><title><![CDATA[一个Android工程师的2011年中总结及Q4计划]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6852650</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6852650</guid><author>xjanker2</author><pubDate>Sat, 08 Oct 2011 16:24:49 +0800</pubDate><description><![CDATA[我这一年的成长非常快速，和Android的发展速度有的一拼了，时间总觉得不够用，本来打算年中时写一些感受和计划的，也突然发现到了现在才有时间整理一下。
在已经过去的2011年的大半年日子里：

Android的学习和研究
借助2010年底正式参与的公司Android项目的]]></description><category></category></item><item><title><![CDATA[Android Trick 12: 简单实现ImageView的加边框颜色的方法]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6653405</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6653405</guid><author>xjanker2</author><pubDate>Tue, 02 Aug 2011 12:48:32 +0800</pubDate><description><![CDATA[对于一个ImageView，如果我们要加上边框，比如宽为3dp的灰色框，我们怎么做呢？
有种方法，是自己定义一个MyImageView类，继承自ImageView，在其onDraw方法中画canvas。
还有设置一个带有边框的背景图片的方法。


这里给出一种简单方法，]]></description><category></category></item><item><title><![CDATA[Android文档及学习资料整理 【至2011年7月】]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6585377</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6585377</guid><author>xjanker2</author><pubDate>Tue, 05 Jul 2011 12:13:50 +0800</pubDate><description><![CDATA[学习参考网站Android Developers  官方开发网站，有权威的 Dev Guide 和 ReffrenceAndroid Source  官方Android全部开源源码网站，提供下载源码至本地的步骤Xda-developers Android版]]></description><category></category></item><item><title><![CDATA[Android资料]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6585290</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6585290</guid><author>xjanker2</author><pubDate>Tue, 05 Jul 2011 11:24:57 +0800</pubDate><description><![CDATA[学习参考网站Android Developers  官方开发网站，有权威的 Dev Guide 和 ReffrenceAndroid Source  官方Android全部开源源码网站，提供下载源码至本地的步骤Xda-developers Android版]]></description><category></category></item><item><title><![CDATA[Android Trick 11: 对Android中的AsyncTask进行函数化的封装，简洁调用]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6549156</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6549156</guid><author>xjanker2</author><pubDate>Thu, 16 Jun 2011 17:46:00 +0800</pubDate><description><![CDATA[为了使UI在数据获取时不僵死，数据获取需要在新开Worker线程中进行，然后将返回结果在UI线程中进行读取并渲染页面。面对这种异步处理，到底如何写才简洁，先后面临过三种实现方式。首先是最原始的Java方式，new 一个Thread出来，将处理Runnable进去执行，执行完之后通过handler post到ui线程去更新界面。然后发现1.5后有了AsyncTask，非常好用，以后的项目中全部改]]></description><category></category></item><item><title><![CDATA[Android应用开发笔记(13): Android移动应用界面的模板化设计]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6546941</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6546941</guid><author>xjanker2</author><pubDate>Wed, 15 Jun 2011 19:27:00 +0800</pubDate><description><![CDATA[Android没有像苹果开发那样功能强大的界面开发工具，本身ADT插件提供的界面编辑能力有限，没办法刻画所有的界面情况；Android的界面xml代码可以进行人工修改，而Iphone的全部在图形界面上拖动完成，可没提供任何方式的代码级修改。Android的UI设计开发过程非常繁琐，容易出错，需要很长时间调节界面细节，开发过Android应用的人肯定深有同感。用几年前的网页设计来打个比方，开发Iph]]></description><category></category></item><item><title><![CDATA[Android Trick 10: 一个Android应用的全局数据变量的访问..]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6544469</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6544469</guid><author>xjanker2</author><pubDate>Tue, 14 Jun 2011 18:11:00 +0800</pubDate><description><![CDATA[在一个Android应用中，我们可以定义一个类，然后使用在类中定义静态成员的方式去创造全局能够访问的数据。如下代码所示:public class AERunTime {    public static String text1 = "example";}在Activity中就可以使用 AERuntime.text1 访问。这是Java的通用方式，也可以稍微改变一下，使用单例模式g]]></description><category></category></item><item><title><![CDATA[Android Trick 9: 关于Android程序中多余的“退出”功能...]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6444378</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6444378</guid><author>xjanker2</author><pubDate>Wed, 25 May 2011 11:37:00 +0800</pubDate><description><![CDATA[已经有各种文章教你如何在Android程序的任何一个页面执行退出整个程序的功能，Android.os方法、restartPackage方法、system.exit方法，甚至有人为制造异常使程序退出的方法，令人害怕呀。其实，我们在Android model的基础上想一下，真得需要这个功能：让用户在任何时候，都能看到一个直接退出该应用的按钮吗？我认为不需要。Google官方人员在很早就表达了这个观点：Question: Does the user have a choice to kill the applic]]></description><category></category></item><item><title><![CDATA[Android Trick 8: ProgressBar的圆形和长条形设置]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6412472</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6412472</guid><author>xjanker2</author><pubDate>Wed, 11 May 2011 17:14:00 +0800</pubDate><description><![CDATA[默认的progresbar是圆形的旋转动画：



长条型的style设置：



style还有以下几个选项：

style="?android:attr/progressBarStyleHorizontal"
style="?android:attr/progressBarStyleLarge"
style="?android:attr/progressBarStyleSmall"
style="?android:attr/progressBarStyleSmallTitle"]]></description><category></category></item><item><title><![CDATA[Android Trick 7: 把TextView中的文字添加阴影效果及Style的使用]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6364770</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6364770</guid><author>xjanker2</author><pubDate>Tue, 26 Apr 2011 17:01:00 +0800</pubDate><description><![CDATA[  

android:shadowColor 阴影颜色

android:shadowDx 阴影的水平偏移量

android:shadowDy 阴影的垂直偏移量

android:shadowRadius 阴影的范围


大多数情况下，某一类的TextView控件需要统一的风格，如加阴影等，那么可以使用style。


        


然后在values文件夹下创建styles.xml文件，内容为：





这样的最大优点是减低代码冗余度，在需要更改]]></description><category></category></item><item><title><![CDATA[Android Trick 6: PendingIntent的重复问题，当新建的PendingIntent匹配上一个已经存在的PendingIntent时可能不会创建新的。]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6333384</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6333384</guid><author>xjanker2</author><pubDate>Tue, 19 Apr 2011 13:48:00 +0800</pubDate><description><![CDATA[<br />Android中默认对PendingIntent的创建（如通过PendingIntent.getActivity方式）会进行优化检测，默认的情况下，新创建的PendingIntent如果和原先的基本一样，那么就会使用原先的PendingIntent。<br />这就导致在目前的项目中，一定间隔的重复给用户发送某类通知，其中带的Intent里的Extra内容不同，但是通知点击后传到一个Activity里的extra消息还是原来的。那么出现做这种问题可以这样解决，在创建PendingIntent时，]]></description><category></category></item><item><title><![CDATA[Android应用开发笔记(12)：Android应用的自动升级、更新模块的实现]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6303937</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6303937</guid><author>xjanker2</author><pubDate>Wed, 06 Apr 2011 09:59:00 +0800</pubDate><description><![CDATA[我们看到很多Android应用都具有自动更新功能，用户一键就可以完成软件的升级更新。得益于Android系统的软件包管理和安装机制，这一功能实现起来相当简单，下面我们就来实践一下。首先给出界面效果：


1. 准备知识
在AndroidManifest.xml里定义了每个Android apk的版本标识：

其中，android:versionCode和android:versionName两个字段分别表示版本代码，版本名称。versionCode是整型数字，versionName是字符串。由于]]></description><category></category></item><item><title><![CDATA[Android应用开发笔记(11)：Android上的蓝牙通信功能的开发：BluetoothChat例程分析]]></title><link>https://blog.youkuaiyun.com/xjanker2/article/details/6303927</link><guid>https://blog.youkuaiyun.com/xjanker2/article/details/6303927</guid><author>xjanker2</author><pubDate>Wed, 06 Apr 2011 09:52:00 +0800</pubDate><description><![CDATA[1.     概述

Bluetooth是几乎现在每部手机标准配备的功能，多用于耳机mic等设备与手机的连接，除此之外，还可以多部手机之间建立bluetooth通信，本文就通过SDK中带的一个聊天室的例程，来介绍一下Android上的Bluetooth的开发。

在Android1.x的时候，相关API非常不完善，还不能简单的使用Bluetooth开发，有一个开源项目可以帮助程序员使用、开发蓝牙，支持直接方法bluetooth协议栈。在Android2以后，框架提供了一些官方API来进行蓝牙的通信，]]></description><category></category></item></channel></rss>