<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>android &#8211; 天地一沙鸥</title>
	<atom:link href="https://haoluobo.com/tag/android/feed/" rel="self" type="application/rss+xml" />
	<link>https://haoluobo.com</link>
	<description>to be continue....</description>
	<lastBuildDate>Fri, 28 Mar 2014 14:42:22 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
	<item>
		<title>[Android]标准体重</title>
		<link>https://haoluobo.com/2014/03/bmi/</link>
		
		<dc:creator><![CDATA[vicalloy]]></dc:creator>
		<pubDate>Fri, 28 Mar 2014 14:42:22 +0000</pubDate>
				<category><![CDATA[vicalloy的庄家]]></category>
		<category><![CDATA[android]]></category>
		<guid isPermaLink="false">/?p=11081</guid>

					<description><![CDATA[很早之前就想写个手机APP。之前想写个类似豆瓣客户端的东西，因为我认为手机APP更多的要和网络结合才有价值。  [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>很早之前就想写个手机APP。之前想写个类似豆瓣客户端的东西，因为我认为手机APP更多的要和网络结合才有价值。<br />
最终写APP的事一直没有真正付诸行动。最近想还是写个最简单的好了，也算是给自己一些鼓励。</p>
<p><strong>标准体重</strong> 一个计算BMI指数的应用。算是Android的开发作业，功能非常简单。代码没有写的很规范，没好意思放到GitHub。</p>
<p><strong>下载地址：</strong> <a href="/wp-content/uploads/2014/03/bmi.apk_.zip">bmi.apk.zip</a></p>
<p><strong>注：</strong> BMI指数（身体质量指数，简称体质指数又称体重指数，英文为Body Mass Index，简称BMI），是用体重公斤数除以身高米数平方得出的数字，是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。</p>
<p><img decoding="async" src="/wp-content/uploads/2014/03/S40325-202642.jpg" alt="" /></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>douban的Android客户端</title>
		<link>https://haoluobo.com/2013/03/douban-android/</link>
					<comments>https://haoluobo.com/2013/03/douban-android/#comments</comments>
		
		<dc:creator><![CDATA[vicalloy]]></dc:creator>
		<pubDate>Thu, 28 Mar 2013 07:51:42 +0000</pubDate>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[android]]></category>
		<guid isPermaLink="false">/?p=11024</guid>

					<description><![CDATA[最近想给Android开发一个小应用，找了一些Android应用来做参考。感觉豆瓣客户端挺有意思。 豆瓣为小组 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>最近想给Android开发一个小应用，找了一些Android应用来做参考。感觉豆瓣客户端挺有意思。</p>
<p>豆瓣为小组、活动等功能开发了独立的客户端。在使用的时候有时候会在APP里直接调用douban的WEB站点或是WAP站点。Facebook放弃HTML5被看成是原生APP的一次巨大胜利。但是WEB APP在跨平台以及开发的便捷性方面都有着一定的优势。在人力资源不是太过充足的情况下采用原生+WEB的开发模式可能是个不错的选择。</p>
<p>在用户使用频繁对用户体验要求高，性能敏感的地方使用原生开发。一些相对简单的页面直接使用WebView即可达到原生应用同样的体验，对这些页面直接使用HTML开发。还有些用户不太常用的功能在前期可以先调用WEB版的原始页面。</p>
<p>PS：</p>
<ul>
<li>就目前而言用HTML5开发移动应用很难提供很好的用户体验。但我相信技术在发展，HTML5还将是趋势，主要问题还是时间，2年？</li>
<li>Android手机上Metro风格的应用越来越多了。苹果将模物化设计做到了极致，接下来是Metro设计极简的逆袭？</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://haoluobo.com/2013/03/douban-android/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Android开发学习笔记（Android基础知识）</title>
		<link>https://haoluobo.com/2010/06/android%e5%bc%80%e5%8f%91%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%ef%bc%88reloaded%ef%bc%89-2/</link>
		
		<dc:creator><![CDATA[vicalloy]]></dc:creator>
		<pubDate>Wed, 02 Jun 2010 15:31:31 +0000</pubDate>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[android]]></category>
		<guid isPermaLink="false">/index.php/2010/06/android%e5%bc%80%e5%8f%91%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%ef%bc%88reloaded%ef%bc%89-2/</guid>

					<description><![CDATA[发现实在是没有写笔记的习惯，每次都是写了一点后就没兴趣继续写下去了。随便摘抄点好了。 Activities a [&#8230;]]]></description>
										<content:encoded><![CDATA[<h4>发现实在是没有写笔记的习惯，每次都是写了一点后就没兴趣继续写下去了。随便摘抄点好了。</h4>
<h4>Activities and Tasks</h4>
<p>task是一组相关的Activities，保存在一个堆栈中，给用户的感觉就是一个应用程序。简单的理解就是，每开一个新的Activities，就将Activities放到堆栈的最上面，按下back后就将当前Activities移除，激活堆栈上的下一个Activities。</p>
<h4>Affinities and new tasks</h4>
<p>其实我没太明白affinity的含义，在我看来似乎affinity有点类似taskId，标示它应该属于哪个task。</p>
<h4>Launch modes</h4>
<p>启动模式总共有四种</p>
<ul>
<li>&quot;standard&quot; (the default mode) </li>
<li>&quot;singleTop&quot; </li>
<li>&quot;singleTask&quot; </li>
<li>&quot;singleInstance&quot; </li>
</ul>
<h4>Clearing the stack</h4>
<p>默认情况下，如果用户长时间离开Task，系统会清理掉除ROOT Activity外的所有Activities。这个做法的依据是，如果用户太久没回来，用户肯定已经忘了自己最初做了啥，回来肯定是要做一些新事情。当然我们可以通过给activity设置一些属性来改变这个行为，比如alwaysRetainTaskState等。</p>
<h4>Starting tasks</h4>
<p>当需要一个activity作为整个应用程序的进入点时，我们给它一个intent filter,其中action为 &quot;android.intent.action.MAIN&quot;，category为&quot;android.intent.category.LAUNCHER&quot;。这种filter使得一个图标和一个标签显示在程序启动器中，使用户可以启动该task或者返回到该task。</p>
<h4>Processes and Threads</h4>
<p>同一个application都运行在同一个Processes里面。</p>
<p>为了保证Activity界面不阻塞，耗时工作应当放到Thread中。</p>
<p>Android有提供一个轻量级的RPC机制。</p>
<h4>Activity lifecycle</h4>
<p>Activity有三种基本状态：</p>
<ul>
<li>active 当前活动窗口 </li>
<li>paused 被其他窗口挡住部分 </li>
<li>stopped&#160; 被完全挡住，在系统需要回收资源的时候会被kill </li>
</ul>
<p>activity在进行状态切换的时候会触发相应的方法</p>
<ul>
<li>void onCreate(Bundle <i>savedInstanceState</i>) </li>
<li>void onStart() </li>
<li>void onRestart() </li>
<li>void onResume() </li>
<li>void onPause() </li>
<li>void onStop() </li>
<li>void onDestroy() </li>
</ul>
<h4>Service lifecycle</h4>
<p>一个service有以下两种用法</p>
<ul>
<li>service启动后由service自己或其他人关闭。 </li>
<li>模块通过接口连接service（bindService() ），在调用unbindService()后关闭。 </li>
</ul>
<h4>Broadcast receiver lifecycle</h4>
<p>一个broadcast receiver只有一个回调方法：    <br />void onReceive(Context curContext, Intent broadcastMsg)</p>
<p>broadcast receiver只有在执行onReceive的时候被认为是激活的。</p>
<p>当一个广播消息的响应非常耗时间时，需要新建一个新的线程来运行该操作。如果onReceive()创建了这个线程并返回，则整个进程，包括新创建的线程会被认为是非活动的（除非有其它的component为活动的），该线程有可能会被kill掉。解决方案是用onReceive()启动一个 service并让该service完成这个工作，那么系统直到这个进程仍然是活跃的。</p>
<h4>END</h4>
<p>到这里Android的基础知识也了解得差不多了，接着就该进军UI了。</p>
<p>Android的UI编程，主要注意的是：界面在XML中定义，为XML中的界面元素生成唯一的ID，并保存在自动生成的R.java中。程序中通过id查找相关界面元素，实现和界面的关联。除此之外的开发，和传统的java swing啥的没太多区别。</p>
<p>下面考虑写个简单的Android应用，一边学习，一遍实践。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Android开发学习笔记（Reloaded）</title>
		<link>https://haoluobo.com/2010/05/android%e5%bc%80%e5%8f%91%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%ef%bc%88reloaded%ef%bc%89/</link>
		
		<dc:creator><![CDATA[vicalloy]]></dc:creator>
		<pubDate>Mon, 31 May 2010 13:44:00 +0000</pubDate>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[android]]></category>
		<guid isPermaLink="false">/index.php/2010/05/android%e5%bc%80%e5%8f%91%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%ef%bc%88reloaded%ef%bc%89/</guid>

					<description><![CDATA[深入浅出Android这书看到“解读程序流程”这部分的时候，我开始明白这确实是本烂书彻底的烂书。里面居然开始解 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>深入浅出Android这书看到“解读程序流程”这部分的时候，我开始明白这确实是本烂书彻底的烂书。里面居然开始解释java程序的结构，啥是import之类的东西。一个人如果连java是啥东西都不做到应当也没必要看啥android开发。不过还在这书够薄，且凭借母语优势，我还是很快的把余下的内容给翻了一遍。感觉差不多可以照葫芦画瓢了，但对具体细节依旧是一头雾水。看来老老实实的看sdk自带的文档才是正道。</p>
<p>Android的开发者网站挂了，不过好在SDK里已经带了相关文档。</p>
<p>具体见：</p>
<p>/android-sdk-windows/docs/guide/topics/fundamentals.html</p>
<p>本着有中文尽量看中文的原则，先到网上找了找是否有Application Fundamentals的中文翻译。似乎已经有不少人做过了翻译，其中这篇翻译得比较完整<a title="http://docs.google.com/View?id=dcz49tvn_68f7rtrr9f" href="http://docs.google.com/View?id=dcz49tvn_68f7rtrr9f">http://docs.google.com/View?id=dcz49tvn_68f7rtrr9f</a></p>
<h4>Application Components</h4>
<p>Android程序比较特别，它不象大多程序一样有主入口。它是以“Application Components”为单位的，每个Components都是可以独立运行的。</p>
<p>系统中有四种Components：</p>
<ul>
<li>Activities 主要用来处理用户界面（窗口）。 </li>
<li>Services 后台运行组件，有点类似windows的后台服务。 </li>
<li>Broadcast receivers 广播消息接收组件，比如电池没电，来电话啥的。 </li>
<li>Content providers 用来处理各个application之间的公共数据存储，可以用来程序之间通信啥的。 </li>
</ul>
<h4>Intent</h4>
<p>content provider在接收到ContentResolver的请求时被激活，其他三种Components需要通过被称为intents的异步消息激活的。一个intent是一个Intent对象，它保存了消息的内容。</p>
<h4>组件的关闭</h4>
<p>Content providers和Broadcast receivers由android管理，通常不需要手动关闭。</p>
<h4>The manifest file（AndroidManifest.xml）</h4>
<p>应用程序配置文件，配置有该有用的组件信息，资源信息，以及权限信息。在android启动一个应用程序的component之前，它必须知道这个component的存在。因此，应用程序在manifest文件中声明了它的component。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Android开发学习笔记（程序目录结构及基本概念）</title>
		<link>https://haoluobo.com/2010/05/android%e5%bc%80%e5%8f%91%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%ef%bc%88%e7%a8%8b%e5%ba%8f%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84%e5%8f%8a%e5%9f%ba%e6%9c%ac%e6%a6%82%e5%bf%b5%ef%bc%89/</link>
		
		<dc:creator><![CDATA[vicalloy]]></dc:creator>
		<pubDate>Thu, 27 May 2010 15:15:10 +0000</pubDate>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[android]]></category>
		<guid isPermaLink="false">/index.php/2010/05/android%e5%bc%80%e5%8f%91%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%ef%bc%88%e7%a8%8b%e5%ba%8f%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84%e5%8f%8a%e5%9f%ba%e6%9c%ac%e6%a6%82%e5%bf%b5%ef%bc%89/</guid>

					<description><![CDATA[选定《深入浅出Android》作为入门资料，同时还需要找个开源项目做参考以加深学习。虽然ADT本身有带不少例子 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>选定《深入浅出Android》作为入门资料，同时还需要找个开源项目做参考以加深学习。虽然ADT本身有带不少例子，但我还想找个复杂点的例子。曾在java上看到javaeye android客户端开源的消息，于是就不费心去找其他的例子了<a title="http://code.google.com/p/javaeye-android-client/" href="http://code.google.com/p/javaeye-android-client/">http://code.google.com/p/javaeye-android-client/</a>。</p>
<p>先创建一个新的Android主要目录如下</p>
<p>|~gen/ <em>系统自动生成的文件</em>     <br />| `~com/     <br />|&#160;&#160; `~haoluobo/     <br />|&#160;&#160;&#160;&#160; `-R.java     <br />|~res/ <em>资源文件，图片以及界面描述等xml文档</em>     <br />| |+drawable-hdpi/     <br />| |+drawable-ldpi/     <br />| |+drawable-mdpi/     <br />| |~layout/ <em>界面布局的描述文件</em>     <br />| | `-main.xml     <br />| `~values/     <br />|&#160;&#160; `-strings.xml <em>字符串常量      <br /></em>|+src/ <em>java代码</em></p>
<p>Android的界面虽然可以完全用java代码完成，但使用XML定义界面使界面和实现代码分开，更有利维护。且ADT提供了界面预览功能，可以直观的看到界面效果。</p>
<p>界面使用XML定义后，界面元素和java代码又要如何交互？所以就有了系统自动生成的R.java这个java类。ADT会在R.java里为XML里的界面元素创建对应的ID（int类型的常量）。根据元素类型的不同，常量保存在不同的子类中。这里说得有些不明白，直接上代码。</p>
<p>public final class R {   <br />&#160;&#160;&#160; public static final class attr {    <br />&#160;&#160;&#160; }    <br />&#160;&#160;&#160; public static final class drawable {    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public static final int icon=0x7f020000;    <br />&#160;&#160;&#160; }</p>
<p>&#8230;&#8230;.</p>
<p>java代码里要获取对应的页面元素使用如下的方法</p>
<p>usernameField = (EditText)findViewById(R.id.username_field);</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Android开发学习笔记（环境准备，学习资料收集）</title>
		<link>https://haoluobo.com/2010/05/android%e5%bc%80%e5%8f%91%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%ef%bc%88%e7%8e%af%e5%a2%83%e5%87%86%e5%a4%87%ef%bc%8c%e5%ad%a6%e4%b9%a0%e8%b5%84%e6%96%99%e6%94%b6%e9%9b%86%ef%bc%89/</link>
		
		<dc:creator><![CDATA[vicalloy]]></dc:creator>
		<pubDate>Wed, 26 May 2010 15:19:57 +0000</pubDate>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[android]]></category>
		<guid isPermaLink="false">/index.php/2010/05/android%e5%bc%80%e5%8f%91%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%ef%bc%88%e7%8e%af%e5%a2%83%e5%87%86%e5%a4%87%ef%bc%8c%e5%ad%a6%e4%b9%a0%e8%b5%84%e6%96%99%e6%94%b6%e9%9b%86%ef%bc%89/</guid>

					<description><![CDATA[前言 iPhone推出后，移动终端的能量似乎被一下引爆，android的加入使这个市场更加繁华。智能设备的开发 [&#8230;]]]></description>
										<content:encoded><![CDATA[<h4>前言</h4>
<p>iPhone推出后，移动终端的能量似乎被一下引爆，android的加入使这个市场更加繁华。智能设备的开发也一下子变得流行起来。</p>
<p>作为一个开发人员，还是很想了解尝试一下智能设备的应用开发。本想试试iPhone，无奈我没MacBook也没iPhone，只能退而求其次选了android。</p>
<h4>环境准备</h4>
<p>如果你只是学习android开发，那有台PC就够了，并不需要去真正买台android设备。</p>
<p>网上关于android的开发环境配置的文章已经够多了，这就不多废话。</p>
<p>具体参考：<a title="http://blog.csdn.net/ghd2000/archive/2010/04/19/5498673.aspx" href="http://blog.csdn.net/ghd2000/archive/2010/04/19/5498673.aspx">http://blog.csdn.net/ghd2000/archive/2010/04/19/5498673.aspx</a></p>
<p>这里要注意的几点：</p>
<ul>
<li>使用SDK Setup.exe安装的时候很可能会无法连接成功。选择Settings-&gt;Force https:// …http://。将连接类型由https改成http。 </li>
<li>如果修改过用户目录，会导致创建的AVD无法启动。需要将.android目录复制到C盘的用户目录，比如：C:\Users\vicalloy\.android </li>
<li><a title="http://developer.android.com/" href="http://developer.android.com/">http://developer.android.com/</a> android的开发者网站悲剧的被墙了，需要自行翻墙 </li>
</ul>
<h4>参考资料</h4>
<p>开发环境准备好后，就要开始搜罗学习资料了。</p>
<ul>
<li><a title="http://www.eoeandroid.com/" href="http://www.eoeandroid.com/">http://www.eoeandroid.com/</a> 中文的android开发论坛，里面有些资料。问题是似乎需要积分才能下载，不过问题不大。找到名字后用 <a title="http://wenku.baidu.com/" href="http://wenku.baidu.com/">http://wenku.baidu.com/</a> 搜索。 </li>
<li><a title="http://wenku.baidu.com/search?word=android&amp;lm=0&amp;od=0" href="http://wenku.baidu.com/search?word=android&amp;lm=0&amp;od=0">http://wenku.baidu.com/search?word=android&amp;lm=0&amp;od=0</a> 搜索android资料 </li>
<li><a href="http://wenku.baidu.com/view/e1d6b50d4a7302768e993924.html">android深入浅出</a> 这本书做入门不错，至少可以让你知道android开发是怎么一回事 </li>
</ul>
<h4>具体的学习笔记</h4>
<p>太晚了，改天补上……</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
