﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-过河卒-随笔分类-Android/gPhone</title><link>http://www.blogjava.net/ponzmd/category/27671.html</link><description>&lt;i&gt;平凡而简单的人一个，无权无势也无牵无挂。一路厮杀，只进不退，死而后已，岂不爽哉！&lt;br/&gt;
收起对“车”日行千里的羡慕；收起对“马”左右逢缘的感叹；目标记在心里面，向前进。一次一步，一步一脚印，跬步千里。&lt;br/&gt;
这个角色很适合现在的我。&lt;/i&gt; </description><language>zh-cn</language><lastBuildDate>Mon, 14 Jan 2008 09:28:05 GMT</lastBuildDate><pubDate>Mon, 14 Jan 2008 09:28:05 GMT</pubDate><ttl>60</ttl><item><title>Android书签列表</title><link>http://www.blogjava.net/ponzmd/archive/2008/01/14/175053.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Sun, 13 Jan 2008 16:01:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2008/01/14/175053.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/175053.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2008/01/14/175053.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/175053.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/175053.html</trackback:ping><description><![CDATA[<h3>复制Android文档列表到这里，记录一下做书签用。乍看起来还有好多啊！</h3>
<p>这个周末一直郁闷，上次死了不少脑细胞搞的那个web下载客户端被老板Kill了。说是与诉求不一致。我的天啊，早不说不一致！ </p>
<p>这两天一直郁闷这个事情。不过想想也是好事情。年前可能不会有新的任务了，也算是消停了，好好开始读读这个文档。^_^</p>
<ul>
    <li>
    <h3><a href="http://code.google.com/android/documentation.html">Documentation</a></h3>
    </li>
    <ul>
        <li><a href="http://code.google.com/android/what-is-android.html"><strong>What is Android?</strong></a> （OVER） </li>
        <li>
        <p><a href="http://code.google.com/"><img alt="Collapse &lt;strong&gt;Getting Started&lt;/strong&gt;" src="http://code.google.com/images/cleardot.gif" /></a><a href="http://code.google.com/android/intro/index.html"><strong>Getting Started</strong></a>&nbsp; </p>
        <ul>
            <li><a href="http://code.google.com/android/intro/installing.html">Installing the SDK</a> （OVER） </li>
            <li><a href="http://code.google.com/android/intro/hello-android.html">Hello Android</a> （OVER） </li>
            <li><a href="http://code.google.com/android/intro/anatomy.html">Anatomy of an App</a> （OVER） </li>
            <li><a href="http://code.google.com/android/intro/tutorial.html">Tutorial</a> （OVER） </li>
            <li><a href="http://code.google.com/android/intro/tools.html">Development Tools</a>&nbsp; （OVER 1-14 13） </li>
            <li><a href="http://code.google.com/android/intro/lifecycle.html">Application Life Cycle</a> （OVER）</li>
        </ul>
        </li>
        <li>
        <p><a href="http://code.google.com/"><img alt="Collapse &lt;strong&gt;Developing Applications&lt;/strong&gt;" src="http://code.google.com/images/cleardot.gif" /></a><a href="http://code.google.com/android/devel/index.html"><strong>Developing Applications</strong></a> </p>
        <ul>
            <li><a href="http://code.google.com/android/devel/building-blocks.html">Implementing a UI</a>&nbsp; （OVER 1-14 17）</li>
            <li><a href="http://code.google.com/android/devel/building-blocks.html">&nbsp;Building Blocks</a> </li>
            <li><a href="http://code.google.com/android/devel/data.html">Data Storage and Retrieval</a> </li>
            <li><a href="http://code.google.com/android/devel/security.html">Security Model</a> </li>
            <li><a href="http://code.google.com/android/devel/resources-i18n.html">Resources and i18n</a></li>
        </ul>
        </li>
        <li>
        <p><a href="http://code.google.com/"><img alt="Collapse &lt;strong&gt;Developer Toolbox&lt;/strong&gt;" src="http://code.google.com/images/cleardot.gif" /></a><a href="http://code.google.com/android/toolbox/index.html"><strong>Developer Toolbox</strong></a> </p>
        <ul>
            <li><a href="http://code.google.com/android/toolbox/philosophy.html">Design Philosophy</a> </li>
            <li><a href="http://code.google.com/android/toolbox/custom-components.html">Building Custom Components</a> </li>
            <li><a href="http://code.google.com/android/toolbox/optional-apis.html">Optional APIs</a> </li>
            <li><a href="http://code.google.com/android/toolbox/google-apis.html">Google APIs and Services</a></li>
        </ul>
        </li>
        <li>
        <p><a href="http://code.google.com/"><img alt="Collapse &lt;strong&gt;Reference Information&lt;/strong&gt;" src="http://code.google.com/images/cleardot.gif" /></a><a href="http://code.google.com/android/reference/index.html"><strong>Reference Information</strong></a> </p>
        <ul>
            <li><a href="http://code.google.com/android/reference/packages.html">Package Index</a> </li>
            <li><a href="http://code.google.com/android/reference/classes.html">Class Index</a> </li>
            <li><a href="http://code.google.com/android/reference/hierarchy.html">Class Hierarchy</a> </li>
            <li><a href="http://code.google.com/android/reference/view-gallery.html">List of Views</a> </li>
            <li><a href="http://code.google.com/android/reference/available-intents.html">List of Intents</a> </li>
            <li><a href="http://code.google.com/android/reference/android/Manifest.permission.html">List of Permissions</a> </li>
            <li><a href="http://code.google.com/android/reference/available-resources.html">List of Resource Types</a> </li>
            <li><a href="http://code.google.com/android/reference/aidl.html">Android IDL</a> </li>
            <li><a href="http://code.google.com/android/reference/glossary.html">Glossary</a> </li>
            <li><a href="http://code.google.com/android/reference/keywords.html">Index</a></li>
        </ul>
        </li>
        <li>
        <p><a href="http://code.google.com/"><img alt="Collapse &lt;strong&gt;Sample Code&lt;/strong&gt;" src="http://code.google.com/images/cleardot.gif" /></a><a href="http://code.google.com/android/samples/index.html"><strong>Sample Code</strong></a> </p>
        <ul>
            <li><a href="http://code.google.com/android/samples/ApiDemos/index.html">API Demos</a> </li>
            <li><a href="http://code.google.com/android/samples/LunarLander/index.html">Lunar Lander</a> </li>
            <li><a href="http://code.google.com/android/samples/NotePad/index.html">Note Pad</a></li>
        </ul>
        </li>
        <li>
        <p><a href="http://code.google.com/"><img alt="Collapse &lt;strong&gt;FAQs&lt;/strong&gt;" src="http://code.google.com/images/cleardot.gif" /></a><a href="http://code.google.com/android/kb/index.html"><strong>FAQs</strong></a></p>
        </li>
        <ul>
            <li><a href="http://code.google.com/android/kb/general.html">General</a> </li>
            <li><a href="http://code.google.com/android/kb/commontasks.html">Common Tasks</a> </li>
            <li><a href="http://code.google.com/android/kb/troubleshooting.html">Troubleshooting</a> </li>
            <li><a href="http://code.google.com/android/kb/licensingandoss.html">Open Source Licensing</a></li>
        </ul>
    </ul>
</ul>
<p><a name="gc-pagecontent"></a> </p>

<img src ="http://www.blogjava.net/ponzmd/aggbug/175053.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2008-01-14 00:01 <a href="http://www.blogjava.net/ponzmd/archive/2008/01/14/175053.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通读Android文档系列 SEVER</title><link>http://www.blogjava.net/ponzmd/archive/2008/01/13/175049.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Sun, 13 Jan 2008 15:32:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2008/01/13/175049.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/175049.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2008/01/13/175049.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/175049.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/175049.html</trackback:ping><description><![CDATA[<p>阅读目标：<a href="http://code.google.com/android/intro/tools.html">Development Tools</a></p>
<p>Android里面通过的工具算是齐全，可以大概看看:</p>
<p>Android Emulator: 电脑上面我们看到的那个Android的模拟器。</p>
<p>Android Development Tools Plugin for the</p>
<p>Eclipse IDE: 我们现在开发Android应用程序的Eclipse插件。一般简称ADT。</p>
<p>Dalvik Debug Monitor Service(ddms)：Dalvik调试监控服务器，Dalvik是Android平台所使用的Java虚拟机，而ddms就集成在Dalvik上面，帮助我们完成调试。</p>
<p>Android Asset Packaging Tool(aapt)：Android打包工具。类似与平常虚拟机里面的jar工具。用来生成apk文件。</p>
<p>Android Interface Description Language(aidl)：Android接口表述语言，它是一种IDL，用来帮助我们完成同一个AndRoid设备上运行的两个进程使用内部通信进程进行交互。</p>
<p>sqlite3：简单的就是数据库。</p>
<p>Traceview：用来生成日志的工具，可以通过编程手段控制。</p>
<p>mksdcard：PC上模拟手机中外部存储卡的工具。</p>
<p>dx:将.class格式转化成.dex格式。至于为什么，我一头雾水？说是.dex人可读，可运行单元测试。</p>
<p>activityCreator：这个我们打过交道了。用来帮助我们创建Android应用的工具。</p>
<img src ="http://www.blogjava.net/ponzmd/aggbug/175049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2008-01-13 23:32 <a href="http://www.blogjava.net/ponzmd/archive/2008/01/13/175049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>首部基于开源Android平台的Google手机曝光</title><link>http://www.blogjava.net/ponzmd/archive/2008/01/10/174147.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Wed, 09 Jan 2008 16:09:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2008/01/10/174147.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/174147.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2008/01/10/174147.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/174147.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/174147.html</trackback:ping><description><![CDATA[<p>转贴,原帖地址：<a title="http://linux.chinaunix.net/bbs/viewthread.php?tid=918534" href="http://linux.chinaunix.net/bbs/viewthread.php?tid=918534">http://linux.chinaunix.net/bbs/viewthread.php?tid=918534</a> <p>作为去年手机行业内的一件大事，Google与超过30家移动技术领先企业组成开放式手机联盟Open HandsetAlliance以及推出的Android手机平台曾引起了人们的广泛关注。只是由于搭载系统产品按照计划将今年下半年问世，因此人们似乎看到的是仅仅是一个宏伟的蓝图而已。不过，令人吃惊的是，在美国赌城拉斯维加斯举行的全球最大规模的消费科技电子大展CES 2008（ConsumerElectronics Show）之上，来自台湾的启碁科技（Wistron NeWebCorp）却出人预料的展出了全球第一款采用开放手机联盟的Android操作系统的手机产品GW4，借助以特别注明GooglePhone宣布了Android-ready系统手机产品的首度公开亮相。 <p><img alt="" src="http://www.linuxeden.com/upimg/allimg/080109/0942050.jpg" border="0"> <p>全球首部Google手机曝光 <p>这次启碁科技公开展示的Android系统手机GW4在外观及造型上看上去与当初在互联网上曝光的那款Google手机有几分相似，也有一个横向的显示的屏幕和QWERTY标准键盘，在整体上并没有多少特别的地方。  <p><img alt="" src="http://www.linuxeden.com/upimg/allimg/080109/0942051.jpg" border="0"> <p>全球首部Google手机曝光而且正如海外媒体介绍的那样，这部全球首款搭载Android操作系统的手机如果没有特别的介绍的话，很容易被被误会为 Windows Mobile系统的智能手机，似乎跟大家对Google Phone的期望有点距离。而且更糟糕的是，有现场使用者声称该机的手感很差，极似玩具模型，相信这会让不少满腔热情的期待者倍感失望。  <p><img alt="" src="http://www.linuxeden.com/upimg/allimg/080109/0942052.jpg" border="0"> <p>全球首部Google手机曝光 <p>不过值得一提的是，在这次CES2008消费电子大展中启碁科技展示的原型机GW4并不能算是百分百的Google手机。按照相关介绍显示，该机其实是以 MontaVista Linux2.6系统为基础开发而成，真正的GoogleAndroid系统平台产品将会在今年的三月推出，并同时会以台湾厂商最擅长的ODM方式，提供给其它大品牌，自己不会发售。因此，预计届时在手机的外观及造型方面会进行一些改善。  <p><img alt="" src="http://www.linuxeden.com/upimg/allimg/080109/0942053.jpg" border="0"> <p>全球首部Google手机曝光除此之外，在相关的硬件规格方面这次粮饷的GW4并没有多少惊人的地方。内置的是TI公司的216 MHz 主频OMAP 1710 处理器，拥有64MB的RAM。使用一个2.5英寸的 QVGA分辨率的液晶屏幕，并在手机背面装载了200万像素摄像头。  <p><img alt="" src="http://www.linuxeden.com/upimg/allimg/080109/0942054.jpg" border="0"> <p>全球首部Google手机曝光 <p>此外，这款号称是首部 Google Phone 的GW4还支持GSM900/1800/1900MHz和GPRS网络，并具备WLAN无线局域网功能，也提供了对SIPVoIP网络电话功能的支持。尽管GW4暂时以Linux 为系统，但主要功能实际上已经与相当接近Google AndroidDemo，在现场使用的时候，人们可以见到的软件包括有Opera Web 浏览器、支持OutlookSync的电子邮件，日程表软件，也内置MSN/Yahoo/AIM等即时通信软件。并拥有GoogleMap、Office 及PDF文档阅读器，并提供了对Widget的支持，如天气、股票报价等。由此可以多少看出未来的GoogleAndroid系统智能手机在功能扩展方面的多样性。  <p><img alt="" src="http://www.linuxeden.com/upimg/allimg/080109/0942055.jpg" border="0"> <p>全球首部Google手机曝光 <p>更为重要的是，尽管处理器和RAM等硬件规格比较平庸，但根据亲身试玩过的现场人员的说法，GW4在运行速度的表现相当不错。而这一定程度上也让人们对于即将在三月问世的Google手机寄予了更多的期待和希望。 <p><em><font color="#ff0000">PS：其实台湾的启碁科技有些标题党的意思，抢人眼球罢了。真的N期待，真正Android平台的手机出来。按计划应该快了，不知道到时候中国市场会有什么变化，手机产品，当然也包括Android开发人员的供求。</font></em><img src ="http://www.blogjava.net/ponzmd/aggbug/174147.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2008-01-10 00:09 <a href="http://www.blogjava.net/ponzmd/archive/2008/01/10/174147.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通读Android文档系列 SIX</title><link>http://www.blogjava.net/ponzmd/archive/2007/12/12/167281.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Wed, 12 Dec 2007 09:25:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2007/12/12/167281.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/167281.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2007/12/12/167281.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/167281.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/167281.html</trackback:ping><description><![CDATA[<p>阅读内容：<a href="http://code.google.com/android/intro/tutorial-ex1.html" target="_blank">Tutorial：Notepad Exercise 1</a>；<a href="http://code.google.com/android/intro/tutorial-ex2.html">Exercise 2</a>；<a href="http://code.google.com/android/intro/tutorial-ex3.html">Exercise 3</a>；<a href="http://code.google.com/android/intro/tutorial-extra-credit.html">Extra Credit</a>&nbsp;</p> <p>&nbsp;</p> <p>因为临时任务出差了几天，这部分内容一直没有时间来更新，本打算看完了实践了以后再来总结的，可是做到一半就被迫停止了，回来以后，以前的也忘的差不错了。以前写到一半的文档，也被同事当作垃圾删掉了...呵呵，只好重新来过...</p> <p>这个例子，我做起来其实并不是很顺利,中间遇到不少的问题。主要是，这个这个Android的EclipsePlugin多多少少还是有些Bug，导致很多时候很麻烦，不知道各位是否有好的解决办法。</p> <p>Notepad这个例子我不想在这里一步一步的重复了，记录一些主要的点完事。完整的代码可以参考，Android Demo里面的Notepad。</p> <p>分下面两个部分：</p> <h6><font size="4">第一部分：主要知识点</font></h6> <p><strong>1.界面布局<br></strong>&nbsp;&nbsp; 看个复杂的好了。界面布局Android推荐使用XML来配置完成。<a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/AndroidSIX_F4E4/jiemian.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="191" alt="jiemian" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/AndroidSIX_F4E4/jiemian_thumb.jpg" width="244" align="right" border="0"></a> </p> <p><span style="color: #0000ff">&lt;?</span>xml version="1.0" encoding="utf-8"<span style="color: #0000ff">?&gt;</span><br><br><span style="color: #0000ff">&lt;</span><span style="color: #800000">LinearLayout</span> <span style="color: #ff0000">xmlns</span>:<span style="color: #ff0000">android</span>=<span style="color: #0000ff">"http://schemas.android.com/apk/res/android"</span><br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">orientation</span>=<span style="color: #0000ff">"vertical"</span> <span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_width</span>=<span style="color: #0000ff">"fill_parent"</span><br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_height</span>=<span style="color: #0000ff">"fill_parent"</span><span style="color: #0000ff">&gt;</span><br><br><span style="color: #0000ff">&lt;</span><span style="color: #800000">LinearLayout</span> <span style="color: #ff0000">android</span>:<span style="color: #ff0000">orientation</span>=<span style="color: #0000ff">"horizontal"</span><br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_width</span>=<span style="color: #0000ff">"fill_parent"</span><br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_height</span>=<span style="color: #0000ff">"wrap_content"</span><span style="color: #0000ff">&gt;</span><br><br><span style="color: #0000ff">&lt;</span><span style="color: #800000">TextView</span> <span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_width</span>=<span style="color: #0000ff">"wrap_content"</span><br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_height</span>=<span style="color: #0000ff">"wrap_content"</span> <br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">text</span>=<span style="color: #0000ff">"@string/title"</span> <span style="color: #0000ff">/&gt;</span><br><span style="color: #0000ff">&lt;</span><span style="color: #800000">EditText</span> <span style="color: #ff0000">id</span>=<span style="color: #0000ff">"@+id/title"</span> <br>&nbsp;&nbsp; <span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_width</span>=<span style="color: #0000ff">"wrap_content"</span><br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_height</span>=<span style="color: #0000ff">"wrap_content"</span> <br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_weight</span>=<span style="color: #0000ff">"1"</span><span style="color: #0000ff">/&gt;</span><br><span style="color: #0000ff">&lt;/</span><span style="color: #800000">LinearLayout</span><span style="color: #0000ff">&gt;</span><br><br><span style="color: #0000ff">&lt;</span><span style="color: #800000">TextView</span> <span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_width</span>=<span style="color: #0000ff">"wrap_content"</span><br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_height</span>=<span style="color: #0000ff">"wrap_content"</span> <br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">text</span>=<span style="color: #0000ff">"@string/body"</span> <span style="color: #0000ff">/&gt;</span><br><span style="color: #0000ff">&lt;</span><span style="color: #800000">EditText</span> <span style="color: #ff0000">id</span>=<span style="color: #0000ff">"@+id/body"</span> <span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_width</span>=<span style="color: #0000ff">"fill_parent"</span><br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_height</span>=<span style="color: #0000ff">"wrap_content"</span><br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_weight</span>=<span style="color: #0000ff">"1"</span><br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">scrollbars</span>=<span style="color: #0000ff">"vertical"</span> <span style="color: #0000ff">/&gt;</span><br><br><span style="color: #0000ff">&lt;</span><span style="color: #800000">Button</span> <span style="color: #ff0000">id</span>=<span style="color: #0000ff">"@+id/confirm"</span> <br>&nbsp;&nbsp; <span style="color: #ff0000">android</span>:<span style="color: #ff0000">text</span>=<span style="color: #0000ff">"@string/confirm"</span><br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_width</span>=<span style="color: #0000ff">"wrap_content"</span><br><span style="color: #ff0000">android</span>:<span style="color: #ff0000">layout_height</span>=<span style="color: #0000ff">"wrap_content"</span> <span style="color: #0000ff">/&gt;</span><br><br><span style="color: #0000ff">&lt;/</span><span style="color: #800000">LinearLayout</span><span style="color: #0000ff">&gt;</span></p> <p>这段配置描述的界面如右图中所示.<br>需要注意的点是：<br>1.layout可以出现嵌套的，这样可以部署更加复杂的界面.<br>2.可以通过@string/confirm来引用/res/string.xml中confirm的值.<br>3.id=@+id/confirm 这里的@表示当XML解析器解析到这个id时，会通过这个id来配置相关的资源。在代码中这样体现，<br>Button confirmButton = (Button) findViewById(R.id.confirm);通过R.id.confirm来配置这个Button。</p> <p>而如果在@后面在来一个+的话，类似与正则表达式的味道，标识至少有一个id表示的资源，如果没有那就知道生成一个了。<br>当然单单定义这个界面是不管用的，还必须通知Android知道才可以，在AndroidManifest.xml中配置一下就可以了。</p><pre><span style="color: #0000ff">&lt;?</span>xml version="1.0" encoding="utf-8"<span style="color: #0000ff">?&gt;</span>
<span style="color: #0000ff">&lt;</span><span style="color: #800000">manifest</span> <span style="color: #ff0000">xmlns</span>:<span style="color: #ff0000">android</span>=<span style="color: #0000ff">"http://schemas.android.com/apk/res/android"</span>
<span style="color: #ff0000">package</span>=<span style="color: #0000ff">"com.google.android.demo.notepad3"</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;</span><span style="color: #800000">application</span> <span style="color: #ff0000">android</span>:<span style="color: #ff0000">icon</span>=<span style="color: #0000ff">"@drawable/icon"</span><span style="color: #0000ff">&gt;</span>
...
<span style="color: #0000ff">&lt;</span><span style="color: #800000">activity</span> <span style="color: #ff0000">class</span>=<span style="color: #0000ff">".NoteEdit"</span> <span style="color: #ff0000">android</span>:<span style="color: #ff0000">label</span>=<span style="color: #0000ff">"@string/edit_note"</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;/</span><span style="color: #800000">activity</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;/</span><span style="color: #800000">application</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;/</span><span style="color: #800000">manifest</span><span style="color: #0000ff">&gt;</span></pre>
<p>这是界面的一部分，还有一部分，不如说菜单要如何实现呢？看这里就明白了 </p><pre><span style="color: #0000ff">private</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">final</span> <span style="color: #0000ff">int</span> INSERT_ID = Menu.FIRST;<br>
<span style="color: #0000ff">private</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">final</span> <span style="color: #0000ff">int</span> DELETE_ID = Menu.FIRST + 1;<br>
@Override<br>
<span style="color: #0000ff">public</span> <span style="color: #0000ff">boolean</span> onCreateOptionsMenu(Menu menu) {<br>
<span style="color: #0000ff">super</span>.onCreateOptionsMenu(menu);<br>
menu.add(0, INSERT_ID, R.string.menu_insert);<br>
menu.add(0, DELETE_ID, R.string.menu_delete);<br>
<span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span>;<br>
}<br>
有个问题，还没有解决掉。菜单项的顺序是Menu.FIRST来决定呢？还是安装Add的顺序来决定呢？</pre>
<p><strong>2.界面迁移与信息交互</strong></p>
<p>应用软件中少不了在各种界面间辗转腾挪，Android中给给我们提供了一套完整的机制来保证我们可以这样做。不太了解的可以看看《<a href="http://www.blogjava.net/ponzmd/archive/2007/12/03/164926.html">通读Android文档系列 FOUR</a>》<br>具体看看它是如何实现的吧。形象一点来表达吧，四步走。<br>第一步：定义Intent<br>Intent i = <span style="color: #0000ff">new</span> Intent(<span style="color: #0000ff">this</span>, NoteEdit.<span style="color: #0000ff">class</span>);<br>第二步：并装载信息,如果没有信息自然可以省去。<br>i.putExtra(KEY_ROW_ID, rows.get(position).rowId);<br>第三步：发送<br>startSubActivity(i, ACTIVITY_EDIT);</p>
<p>这样就进入了子界面的生命周期中，子界面首先触发的会是onCreate方法.<br>我想记下的如何获取Intent中装载的信息，代码如下</p><pre>Bundle extras = getIntent().getExtras();            <br>
rowId = extras != <span style="color: #0000ff">null</span> ? extras.getLong(Notepadv3.KEY_ROW_ID) : <span style="color: #0000ff">null</span>;</pre>
<p>界面迁移就到这里吧。</p>
<p><strong>3.事件处理</strong></p>
<p>接下来是事件处理，这个现对简单事件也不多。<br>1.菜单项选择事件，Activity里面已经定义好了，实现相关方法即可。</p><pre> @Override<br>
<span style="color: #0000ff">public</span> <span style="color: #0000ff">boolean</span> onMenuItemSelected(<span style="color: #0000ff">int</span> featureId, Item item) {<br>
<span style="color: #0000ff">boolean</span> result=<span style="color: #0000ff">super</span>.onMenuItemSelected(featureId, item);<br>
...<br>
<span style="color: #0000ff">return</span> result;<br>
}</pre>
<p>2.选择列表项事件，ListActivity里面也有现成的方法，实现即可</p><pre>@Override<br>
<span style="color: #0000ff">protected</span> <span style="color: #0000ff">void</span> onListItemClick(ListView l, View v, <span style="color: #0000ff">int</span> position, <span style="color: #0000ff">long</span> id) {<br>
<span style="color: #0000ff">super</span>.onListItemClick(l, v, position, id);<br>
...<br>
}</pre>
<p>3.添加记录的确定按钮，这个需要自定义了，不过和Swing，Awt里面基本上是一致的。<br>Button confirmButton = (Button) findViewById(R.id.confirm);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; confirmButton.setOnClickListener(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">new</span>&nbsp;&nbsp; View.OnClickListener() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> onClick(View arg0) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setResult(RESULT_OK);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; finish();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });</p>
<p><strong>4.Android的生命周期事件</strong></p>
<p>说明这个问题还是引入那个图的好，</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/AndroidSIX_F4E4/activity_lifecycle_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="activity_lifecycle" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/AndroidSIX_F4E4/activity_lifecycle_thumb.png" width="354" border="0"></a> </p>
<p>这样就一目了然了，Notepad中做的只不过是为了让我们切实体验一下罢了.</p>
<p><strong>5.信息存储(SQLite)</strong></p>
<p>Android给我们提供了android.database以及android.database.sqllite两个包。这中间包括了基本上所有的信息存储方面的操作。</p>
<p>这部分的内容，凡做个数据库开发的一目了然的事情。不需多说。Android已经为我们封装的相当到位了。多多了解和熟悉API即可使用.</p>
<p><strong></strong>&nbsp;</p>
<h6><font size="4">第二部分，遇到的问题</font></h6>
<p><strong>1.应用程序修改后不会自动更新</strong><br>这个问题处理方法有2个，分别是：<br><br>解决方法1(推荐使用)</p>
<blockquote>
<p>通过Android Tools里面的Export Application Package工具导出*.apk.利用命令行工具adb install 和adb shell/rm 来部署和卸载*.apk文件。这样来更新。</p></blockquote>
<p>解决方法2：</p>
<blockquote>
<p>通过删除userdata.img文件来更新。可以参考这里<a href="http://www.blogjava.net/ponzmd/archive/2007/11/19/161702.html">初体验Android的两个小不爽</a><br>不过这样的话，模拟器中所有的数据全部会被清除掉，所以不推荐.</p></blockquote>
<p>如果经常开发Android的话，把这些操作扩展到ant里面，会是一个不错的选择。</p>
<p>其他还想了解的内容：</p>
<p>1.<a href="http://code.google.com/android/kb/commontasks.html">Common Android Tasks</a></p>
<p>2.更完整的Notepad的例子</p>
<p>最后提供一个Notepad的源代码，<a href="http://www.blogjava.net/Files/ponzmd/NotepadCodeLab.rar" target="_blank">可以在这里下载</a></p><img src ="http://www.blogjava.net/ponzmd/aggbug/167281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2007-12-12 17:25 <a href="http://www.blogjava.net/ponzmd/archive/2007/12/12/167281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通读Android文档系列 FIVE</title><link>http://www.blogjava.net/ponzmd/archive/2007/12/04/164929.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Tue, 04 Dec 2007 01:43:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2007/12/04/164929.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/164929.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2007/12/04/164929.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/164929.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/164929.html</trackback:ping><description><![CDATA[<p>阅读内容：<a href="http://code.google.com/android/intro/lifecycle.html">Application Lifecycle</a></p>
<p>1.Android应用运行是一个运行在LinuxKnerl上面的一个进程，一旦一个进程被创建，这个应用程序的存活时间就不在由这个应用直接控制，而是被系统所决定。</p>
<p>2.一般而言，系统中进程分这样几类:<br />
<strong>A foreground process</strong>：位于最前端的正与用户进行交互的Activity进程（OnResume()方法被调用时）,也可以是正在执行onReceiveIntent()方法的一个IntentReceiver.</p>
<p><strong>A visible process</strong>：能够被用户看见但是没有显示在最前面的Activity进程.（OnPause()方法被调用时）</p>
<p><strong>A service process</strong>：持有Service的进程，它们在后台工作用户看不到。由startService()启动.</p>
<p><strong>A background process</strong>:持有一个不再被用户可见的Activity的进程.(onStop()方法被调用时)。</p>
<p><strong>An empty process:</strong> 那些没有持有活动任何应用组件的进程，他们通常提供一种缓存机制，加快它们下一次的启动.</p>
<p>如果系统考虑终止进程，会按照由 empty-&gt;background-&gt;service-&gt;visible-&gt;foreground的顺序。</p>
<p>3.仅仅可以知道这些：代码执行时Android应用被创建，存活时间由系统决定，应用自己还直接决定不了。其他的一无所知，这个也算说明白了Application的生命周期了吗？</p>
<p>好了，就到这里了。</p>
<p>进一步了解的内容：</p>
<p>1.Activity，Service，IntentReceiver各自的生命周期是怎么样的？</p>
<img src ="http://www.blogjava.net/ponzmd/aggbug/164929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2007-12-04 09:43 <a href="http://www.blogjava.net/ponzmd/archive/2007/12/04/164929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通读Android文档系列 FOUR</title><link>http://www.blogjava.net/ponzmd/archive/2007/12/03/164926.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Mon, 03 Dec 2007 10:41:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2007/12/03/164926.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/164926.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2007/12/03/164926.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/164926.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/164926.html</trackback:ping><description><![CDATA[<p>阅读内容：<a href="http://code.google.com/android/intro/anatomy.html">Anatomy of an App</a></p>
<p>1.Android应用程序可以由4块组成，分别是：</p>
<p><a href="http://code.google.com/android/reference/android/app/Activity.html">Activity</a>：</p>
<blockquote>
<p>Activity可以看成是与用户界面操作相关的一部分内容，一般来说Android用户界面多是通过继承Activity基类，并在Activity子类上面设置多个View组成的用户UI，并且对这些UI作出相应的事件处理来实现的。一般来说，一个Activity就是一个单独的屏幕，而一个Android应用程序可能有多重的用户界面，也就意味会有多个Activity类，这些界面之间的切换通过使用<a href="http://code.google.com/android/reference/android/content/Intent.html">Intent</a>来辅助完成。</p>
<p>Intent表示当前应用想要做什么。它由两个部分组成，动作和数据，想想struts的典型请求，edit.do?id=001.Intent应该和这个类似。不过Intent的动嘴是预定义好的，如VIEW_ACTION,EDIT_ACTION等。</p>
<p>和Intent相关的还有一个<a href="http://code.google.com/android/reference/android/content/IntentFilter.html">IntentFilter</a>。IntentFilter被通知了一个Activity(或者IntentReceiver)能够操作那些Intent。</p>
<p>通过上面的了解，基本形成了这样一个图景：<br />
单独的Activity，相应可以通过事件机制捕获，而如果涉及到界面切换的话Activity会产生一个Intent，而Intent会被提交到IntentFilter上面进行匹配，匹配成功会转到下一个Activity。想想这不就是MVC吗?V：activity；C：IntentFilter，M：逻辑处理代码，如事件处理等.</p>
<p>这样的好处：文档里面提到了两个，<br />
1.组件可以复用;<br />
2.Activity能够在任何时候被一个带有相同IntentFilter的Activity所替换.</p>
</blockquote>
<p><a href="http://code.google.com/android/reference/android/content/IntentReceiver.html">IntentReceiver</a>：</p>
<blockquote>
<p>上面Activity,Intent,IntentFilter给我们勾勒一个完整的程序处理流程，而IntentReceiver则是这个流程的重要辅助，IntentReceiver说的是如何出来外部事件的，外部事件比如说电话呼入等。<br />
具体的如何做？我也还很模糊.</p>
</blockquote>
<p><a href="http://code.google.com/android/reference/android/app/Service.html">Service</a>：</p>
<blockquote>
<p>Service可以理解成为后台运行提供支持的部分。比如后台播放MP3这类的操作，全要仰仗Service支持的.</p>
</blockquote>
<p><a href="http://code.google.com/android/reference/android/content/ContentProvider.html">ContentProvider</a>：</p>
<blockquote>
<p>ContentProvider可以顾名思义一下，他是用来帮助我们处理数据和实现数据共享的。比起J2ME里面的RMI，那就不是差一两个等级的问题了.赫赫</p>
</blockquote>
<p>好了，这个到这里了.<br />
还有想了解的东西：</p>
<p>1.想看一个实际一点的例子，亲手体会一下这些组件的使用?<br />
2.进一步详细的了解些基本部分的细节.其实我已经找到地方了，不信你可以点击这些那些条目的链接看看.</p>
<img src ="http://www.blogjava.net/ponzmd/aggbug/164926.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2007-12-03 18:41 <a href="http://www.blogjava.net/ponzmd/archive/2007/12/03/164926.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通读Android文档系列 THREE</title><link>http://www.blogjava.net/ponzmd/archive/2007/12/03/164761.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Mon, 03 Dec 2007 01:18:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2007/12/03/164761.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/164761.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2007/12/03/164761.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/164761.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/164761.html</trackback:ping><description><![CDATA[<p>阅读内容：<a href="http://code.google.com/android/intro/hello-android.html">Hello Android</a></p> <p>1.在Android中，应用程序的入口是继承了Activity类中的OnCreate()方法，这个方法也类似于J2me中Midlet类的StartApp()方法的地位.</p> <p>2.初接触Android，一句句的搞明白Helloworld的源代码的含义是很有收获的。</p> <p>源代码如下：</p><pre><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> HelloAndroid <span style="color: #0000ff">extends</span> Activity {
    <span style="color: #008000">/** Called when the activity is first created. */</span>
    @Override
    <span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> onCreate(Bundle icicle) {
        <span style="color: #0000ff">super</span>.onCreate(icicle);
        TextView tv = <span style="color: #0000ff">new</span> TextView(<span style="color: #0000ff">this</span>);
        tv.setText("<span style="color: #8b0000">Hello, Android</span>");
        setContentView(tv);
    }
}</pre>
<p>a.通过注释已经很清楚的告诉我们，onCreate会随着Activity被示例化而执行。其实我更想知道的是Activity的生命周期是什么？<br>看看这个图，或许能明白点什么？</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/AndroidTHREE_D90A/activity_lifecycle_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="activity_lifecycle" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/AndroidTHREE_D90A/activity_lifecycle_thumb.png" width="354" border="0"></a> <br>b.我也很想知道Activity和Bundle究竟会是些什么？但是很遗憾HelloAndroid里面没有功夫细细到来。唉，管他呢？该知道的我总有一天会知道的。<br>c.TextView tv = new TextView(this); 这里的this看起来是个Activity，而实际API里面要求是一个Context，而恰好Activity是继承于Context。Context可以认为是一个系统资源的访问句柄，它提供了各种资源，数据库以及其他程序设计的服务.<br>d.setContentView(tv)；在Android中，View其实是一个drawable对象，setContentView也就确定了那个View是与当前的Activity相关的.</p>
<p>3.关于R.java<br>可以认为R.java是我们访问/res下面各种资源的索引。比如我们可以通过R.drawable.icon来访问，/res/drawable/下的icon.png图片。</p>
<p>好了，就这些了。</p>
<p>还有些想知道的东西</p>
<p>1.Activity的生命周期？<br>2.一个Android程序的各个组成部分是怎么样的？</p><img src ="http://www.blogjava.net/ponzmd/aggbug/164761.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2007-12-03 09:18 <a href="http://www.blogjava.net/ponzmd/archive/2007/12/03/164761.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通读Android文档系列 TWO</title><link>http://www.blogjava.net/ponzmd/archive/2007/11/30/164296.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Fri, 30 Nov 2007 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2007/11/30/164296.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/164296.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2007/11/30/164296.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/164296.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/164296.html</trackback:ping><description><![CDATA[<p>阅读内容：<a href="http://code.google.com/android/intro/installing.html">Installing the SDK and Plugin</a></p> <p>1.不使用EclipsePlugin来完成Android应用程序开发【window平台】</p> <p><strong>创建工程</strong></p> <p>Android的SDK为我们手动创建工程提供了一个小工具：activityCreator。<br>它被放置在%Android_Home%/tools/activityCreator.bat.<br>而实际的运行程序是在这个位置：<br>%Android_Home%/tools/lib/activityCreator/activityCreator.exe</p> <p>可通过命令行来运行这个创建程序。</p> <p>具体参数可以有两个：<br>--out &lt;folder&gt; ,设定输出目录。默认是当前文件夹。<br>--ide intellij, 生成IntelliJ的工程文件，这样就可以导入到IntellliJ里面开发了.<br>执行结果会生成如下文件：<br>AndroidManifest.xml,build.xml,和几个文件夹res/src/bin/.</p> <p>比较感兴趣的自然是build.xml. </p> <p><strong>编译工程</strong></p> <p>如果已经配置好了Ant的话，编译工程只需要通过ant执行一下生成的build.xml文件即可。<br>编译完成后，bin/目录下面会生成如下文件：classes.dex，HelloAndroid.apk 以及一个classes/文件夹。</p> <p><strong>部署和运行工程</strong></p> <p>编译生成的apk文件就是最终要实际部署的文件，部署过程如下：<br>1.进入%Android_Home%/tools下，启动模拟器，执行emulator.exe。<br>2.模拟器启动完成后，进入.apk文件所在目录，执行 adb install HelloAndroid.apk<br>注意这里可能会提示如下：<br>* daemon not running.starting it now *<br>* daemon still not running *<br>error: no device<br>这种情况多出现在第一次安装apk的时候，可重启emulator后再次尝试安装apk，一般可解决.<br>安装正常，应提示为提示上次速度的字样。<br>这样部署也算是完成了，可以在模拟器中Applications菜单里面运行这个HelloAndroid程序，就可以看到效果了。</p> <p><strong>调试</strong></p> <p>现在看来如果没有使用IDE的话，在命令行状态下是不能进行调试的。<br>具体要怎么来做，还不是太明白，和DDMS有重要的关系。<br>帖个DDMS的图，以后继续关注它。<br>&nbsp;<a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/AndroidTWO_115F2/ddms.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="ddms" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/AndroidTWO_115F2/ddms_thumb.jpg" width="644" border="0"></a> </p> <p><strong>移除Android程序</strong></p> <p>通过adb install *.apk其实将apk文件上传到了模拟器自带操作系统的data/app目录下了，如果要卸载apk却没有提供adb uninstall这个命令，要移除只好进入模拟器操作系统的文件系统内部手动删除apk文件了。如何做运行adb shell 可进入模拟器自带的操作系统，然后的操作和Linux一样：cd data/app ; rm HelloAndroid.apk ;就可以了。下次就不会再见到这个Android程序了。</p> <p>&nbsp;</p> <p>这个文档就到这里了，有几个东西需要进一步的深入。</p> <p>1.Ant脚本—build.xml. 把它整合到Eclipse应该会是一个方便的工具。<br>2.adb：这个工具时候能力无穷，应该好好看看。<br>3.DDMS：这个工具对于调试和日志来说似乎无所不能，其他的它还能干什么呢？具体怎么用它？</p><img src ="http://www.blogjava.net/ponzmd/aggbug/164296.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2007-11-30 15:12 <a href="http://www.blogjava.net/ponzmd/archive/2007/11/30/164296.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通读Android文档系列 ONE</title><link>http://www.blogjava.net/ponzmd/archive/2007/11/30/164214.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Fri, 30 Nov 2007 03:38:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2007/11/30/164214.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/164214.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2007/11/30/164214.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/164214.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/164214.html</trackback:ping><description><![CDATA[<p>没有想过要参加Google的Android开发大赛，只不过不想丢掉以前J2me积累下来的点点虚荣心，以前也没有尝试过在blog里面写很长的一个系列的内容，不过这次算是一个开始。</p> <p>基本想法是按照Android的官方文档的顺序一路读下去，记下一些有意思的东西。也会附上自己实践过程中的体会。</p> <p>官方文档：</p> <p><a title="http://code.google.com/android/documentation.html" href="http://code.google.com/android/documentation.html">http://code.google.com/android/documentation.html</a></p> <p>中文文档：</p> <p><a title="http://www.androidcn.net/wiki/index.php/%E7%BF%BB%E8%AF%91%E4%BB%BB%E5%8A%A1%E9%A2%86%E5%8F%96" href="http://www.androidcn.net/wiki/index.php/%E7%BF%BB%E8%AF%91%E4%BB%BB%E5%8A%A1%E9%A2%86%E5%8F%96">http://www.androidcn.net/wiki/index.php/%E7%BF%BB%E8%AF%91%E4%BB%BB%E5%8A%A1%E9%A2%86%E5%8F%96</a></p> <p>这里发自内心的感谢一下这些辛苦的中文文档的翻译者们。你们好样的.</p> <p>好吧，开始这个漫长的学习之路吧。</p> <p>&nbsp;</p> <h3><strong>通读Android文档系列 ONE</strong></h3> <p>&nbsp;</p> <p>阅读内容：<a href="http://code.google.com/android/what-is-android.html">What is Android?</a></p> <p><br>Android的体系结构</p> <p><a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/AndroidONE_110FE/system-architecture_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="532" alt="system-architecture" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/AndroidONE_110FE/system-architecture_thumb.jpg" width="733" border="0"></a></p><img src ="http://www.blogjava.net/ponzmd/aggbug/164214.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2007-11-30 11:38 <a href="http://www.blogjava.net/ponzmd/archive/2007/11/30/164214.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初体验Android的两个小不爽</title><link>http://www.blogjava.net/ponzmd/archive/2007/11/19/161702.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Mon, 19 Nov 2007 11:21:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2007/11/19/161702.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/161702.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2007/11/19/161702.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/161702.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/161702.html</trackback:ping><description><![CDATA[<p>今天下午花了点时间来体验Android，本以为5分钟就可以完成的Helloworld，却用了将近1个半小时的时间，实在有些不爽。现在暂时记下一些不爽的地方，希望大家能指出问题在哪里？有什么更好的办法？</p>
<p>前面按照文档，下载sdk和eclipse plugin，安装配置安装文档一路顺风。马上新建工程，编写Helloworld代码，启动运行。想着应该大工告成，看的到效果收工了。谁知道问题出来了。</p>
<p>代码如下：</p>
<pre class="csharpcode">package person.pengjun.hello;<br />
<br />
import android.app.Activity;<br />
import android.os.Bundle;<br />
import android.widget.TextView;<br />
<br />
<span class="kwrd">public</span> <span class="kwrd">class</span> HelloAndroid extends Activity {<br />
<span class="rem">/** Called when the activity is first created. */</span>
<span class="preproc">@Override</span>
<span class="kwrd">public</span> <span class="kwrd">void</span> onCreate(Bundle icicle) {<br />
super.onCreate(icicle);<br />
TextView tv = <span class="kwrd">new</span> TextView(<span class="kwrd">this</span>);<br />
tv.setText(<span class="str">"过河卒, 每天进步1%"</span>);<br />
setContentView(tv);<br />
}<br />
}</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>不爽1：HelloWorld需启动两次</strong></p>
<p>在Eclipse的run菜单里面配置了Android Appliaction的运行配置，一切OK，启动工程。一切启动正常，按照文档的说发，我就应该能够看到屏幕中显示出来的&#8220;过河卒，每天进步1%&#8221;的字样了。而我实践看到的确实手机桌面，不解。在手机菜单里面找了好几遍也没有找到相应的启动选项。（PS：到时里面的API DEMO吸引我看了好久）。没办法，没看到效果。只好回头检查是否有错误。</p>
<p>发现Eclipse里面的启动信息如下：</p>
<p>[2007-11-19 18:10:52 - HelloAndroid] ------------------------------<br />
[2007-11-19 18:10:52 - HelloAndroid] Android Launch!<br />
[2007-11-19 18:10:52 - HelloAndroid] Launching: person.pengjun.hello.HelloAndroid<br />
[2007-11-19 18:10:52 - HelloAndroid] Launching the emulator.
</p>
<p>回想doc里面说的，启动会先启动emulator，之后才会启动application。</p>
<p>看到这里，我又Ctrl+F11再启动了一次Android Application，结果挺好。终于出现了，我希望看到的界面。</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/Android_10FED/%E6%9C%AA%E5%91%BD%E5%90%8D2.jpg"><img style="border-width: 0px;" alt="未命名2" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/Android_10FED/%E6%9C%AA%E5%91%BD%E5%90%8D2_thumb.jpg" align="left" border="0" height="244" width="147" /></a> </p>
<p>启动信息如下：</p>
<p>[2007-11-19 18:12:30 - HelloAndroid] ------------------------------<br />
[2007-11-19 18:12:30 - HelloAndroid] Android Launch!<br />
[2007-11-19 18:12:31 - HelloAndroid] Launching: person.pengjun.hello.HelloAndroid<br />
[2007-11-19 18:12:31 - HelloAndroid] Pushing HelloAndroid.apk to /data/app on the device<br />
[2007-11-19 18:12:31 - HelloAndroid] Starting activity on device: person.pengjun.hello.HelloAndroid<br />
[2007-11-19 18:12:33 - HelloAndroid] ActivityManager: Starting: Intent { comp={person.pengjun.hello/person.pengjun.hello.HelloAndroid} }
</p>
<p>&nbsp;</p>
<p>虽然这没有浪费我什么时间，但是文档里面居然一个字也没有提。不爽。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>不爽2：修改居然不会自动更新</strong></p>
<p>看到效果了，心里面也不免小兴奋一把。修改了&#8220;过河卒，每天进步1%&#8221;为&#8220;Android，I love you&#8221;以表庆祝。启动运行，问题还是依旧，看到的还就手机桌面，心里面不免暗暗叹息。再次Ctrl+F11，这回出来了。但是出来了的字符让我伤心，居然还是&#8220;过河卒，，每天进步1%&#8221;，这有点受不了了。尝试关闭程序再次尝试，问题依旧。于是想是不是和Web浏览器的缓存一样，那有记录下来了。于是查找一番，果然让我查到了，在手机桌面的Application里面出现了 我的AndroidApplication，启动依然是&#8220;过河卒，每天进步1%&#8221;。</p>
<p>没办法只好查文档了，折腾了一会，终于让我查到。</p>
<p><a title="http://code.google.com/android/reference/emulator.html#controlling" href="http://code.google.com/android/reference/emulator.html#controlling">http://code.google.com/android/reference/emulator.html#controlling</a></p>
<p>里面有这样的记录：</p>
<p><em>Only the first emulator instance can preserve user data across sessions. It stores the user data in a file — by default, it stores the data in the file <code>~/.android/userdata.img (on Linux and Mac)</code> or <code>C:\Documents and Settings\&lt;user&gt;\Local Settings\Android\userdata.img</code> (on Windows) in your development computer. You can control the storage (and loading) location of the user data file by using the <code>-data</code> option when starting the emulator 。</em></p>
<p><code><font face="Trebuchet MS">原来在这里</font>C:\Documents and Settings\&lt;user&gt;\Local Settings\Android\userdata.img</code> </p>
<p>去到这里，发现什么也没有。不甘心，查找了一下。原来它在<code>C:\Documents and Settings\&lt;user&gt;\Local Settings\<strong>Application Data</strong>\Android\userdata.img 。找到它，毫不客气删除重运AndroidApplication，终于见到&#8220;Android，I love you&#8221;。看来还是那句歌唱的好啊，&#8220;想说爱你不容易&#8221;。</code></p>
<p><code>找到问题经过多次尝试，仍然不会自动随修改更新，心里面很是不爽啊。每次修改只好删除，userdata.img再试，实在麻烦。不过暂时也没有更好的办法，只好如此。</code></p>
<p><code>由于默认目录太偏，而且会影响所有的Android的运行，所以想了个替代的办法。在Eclipse的run菜单里面配置emulator的启动配置。在工程文件下面建一个data文件夹，把这个user data file 指定到这个位置上面。这样每个Application都配置的话相互之间也就不会影响了。配置如下图，</code></p>
<p><code><a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/Android_10FED/%E6%9C%AA%E5%91%BD%E5%90%8D3.jpg"><img style="border-width: 0px;" alt="未命名3" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/Android_10FED/%E6%9C%AA%E5%91%BD%E5%90%8D3_thumb.jpg" border="0" height="484" width="604" /></a> </code></p>
<p>不管配置的多好，总之还是那个词，不爽。</p>
<p>上面是我今天初用Android遇到的问题，这可能和我机器的运行环境有关系。不知道大家是否也有遇到，不知道大家是否有更好好的处理办法？ 请大家多多指点。</p>
<br />
<p><br />
</p>
<p><span style="color: rgb(77, 154, 0);">
11月20日晨</span><br />
早上换了台机器，重新解压了个eclipse,版本3.3.再次尝试HelloAndroid，居然上面的问题，一个也没有出现。这可能和系统的环境有关
系。因为昨天的那台机器上面东西比较杂，也疏于打理。具体是什么方面的影响还不清楚，不过昨天机器的Eclipse是3.1的版本。</p>
<img src ="http://www.blogjava.net/ponzmd/aggbug/161702.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2007-11-19 19:21 <a href="http://www.blogjava.net/ponzmd/archive/2007/11/19/161702.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>由Android想到的事情</title><link>http://www.blogjava.net/ponzmd/archive/2007/11/18/161414.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Sun, 18 Nov 2007 08:55:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2007/11/18/161414.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/161414.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2007/11/18/161414.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/161414.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/161414.html</trackback:ping><description><![CDATA[<p>Google发布了Android，下面是由Android想到的...</p>
<p>&nbsp;</p>
<p><strong>好的公司定标准</strong></p>
<p>关于Gphone的猜测给各大媒体操作的乌烟瘴气，最终Google出来说话了，&#8220;现在还没有Gphone，只有Android&#8221;。什么是Android？</p>
<p>Android doc里面说，</p>
<p>Android is a software stack for mobile devices that includes an operating system, middleware and key applications.</p>
<p>可以看出这回Google又走在了大家的前面，&#8220;好的公司定标准&#8221;，Google深捂这句话的真谛，从一开始就要成为标准订制者，然后再细化至具体产品。这样方可立于不败之地。</p>
<p><strong>J2ME会消失</strong></p>
<p>Android是由Google和Open Hand Aliance，一个由 33 间手机制造商、软件商和电信业者(中国移动就是其中的一个)组成的Android 推广联合会联合发布的。以后势必会出现一个统一的平台，不会在出现J2ME中各种品牌和机型中软件移植的麻烦。</p>
<p>Android基于Java开放的。但对于Android而言，我们首先要强调的是Android是一个基于Linux Kenrnel的移动设备操作系统，大体看上来是与Symbian、Windows Mobile在同一级别的。并且这个操作系统的基础上面提供了各种和用的LIBRARIES 和一个完整的Application Framework。这是的开发过程中，对于操作系统层面的控制必然强于J2ME。想当初，为了一个手游效果想控制一下手机的震动，不知道多是脑细胞。</p>
<p><strong>下一个Android在那里？</strong></p>
<p>虽然Android才刚刚发布，甚至于连一个成功的产品也没有看到。但是我已经迫不及待的在设想下一个Android在那里了？有这样一个现象，浏览器变了，不再想我们印象中浏览网页，提交基本信息的小伙计了，它变的越来越强势。各种web版本的软件以前只有桌面操作系统里面才有的软件，现在Web上面也有了。如Web office；于是有了一个概念WebOS。WebOS会不会是下一个Android的出生点呢？会不会有公司仿照Google Android的做法也在WebOS方面做同样的事情呢？</p>
<p>到那个时候会不会这样情况出现？PC会预装这种操作系统，所有的软件甚至于游戏全不需要安装，只需要开打相应的网址就可以了。而我们这些程序员全不再同一个统一的标志下面写东东。 </p>
<p>^_^ ， 上面这个有些异想天开的。如果我儿子还干程序员不知道会不会是这样的情况...</p>
<p>上面都是我在这几天接触Android想到的，记录一下罢了。</p>
<p>勿笑偶幼稚啊！</p>
<img src ="http://www.blogjava.net/ponzmd/aggbug/161414.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2007-11-18 16:55 <a href="http://www.blogjava.net/ponzmd/archive/2007/11/18/161414.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>