Tag: android

  • Android: Instant Heart Rate

    最近一直偏向于搞iPad,对于Android的程序有点不怎么关心了。不过,今天在网络上闲逛,看到这个软件:Instant Heart Rate,立即安装了一下。

    这个程序,顾名思义,就是测量人的心率。

    它的原理就是:“人体血液颜色是由血液中的含氧量决定的,而每次心跳都会使血液里的氧含量增加,身体消耗掉之后血液的氧含量又会降低,所以血液的颜色由于氧含量的变化会产生周期性的改变。当你的手指在手机摄像头前划过,手机程序就会观察血液颜色的变化然后做出较高精确地测量。这个程序相对传统检测方式来说,非常节约时间而且可以随时使用。”

    我测量了几次,和我上次体检时的心率相比误差在±2之间,还是很准的。 这个软件非常实用,也有医学原理作为依据。前令狐,你值得拥有!

  • How Nexus One changed my mobile life

    I have been using mobile phones for many years, but I just used it, not being influenced by it, until I got this one: Nexus One.

    The most application that I use on N1 is Email. Android 2.X supports Exchange accounts. This is really a must have for my office emails. How can I access my office mails without a handy client, using web access? Come on, buddy, you must be kidding me.

    (more…)

  • An Android application with map

    I had read a few tutorials on how to develop an Android appication with map display. Today I had actually built one. I would like to summarize the key points/steps in making this application work.

    1. First of all, get an Android Map API Key from Google.

    (more…)

  • Something to talk on iPhone and Android

    猛禽写了一篇关于iPhone和Android的开放问题的文章。我虽然近来难得看妓术技术文章,不过猛禽这篇我还是看了一遍。随便说说我的想法吧。

    我最早接触电脑是用的Apple II,高中的时候在上面编程玩,编了一个图书馆的管理程序,用的是文本数据库,Basic语言。这个程序当年还获得了省二等奖。顺便说一句,当时用的中文系统是一个盗版的……

    (more…)

  • 用Nexus One来写WordPress的博客

    刚入手的N1,于是自然而然开始试用各类软件。这篇文章就是用Wordpress for Android写的。还行!

    只是它和WP2Laconica插件不兼容。如果选择在Wordpress for Android中“Publish”的话,会crash这个软件。但是post已经成功发布,只是由WP2Laconic创建的uri会不完整,而push到我的话痨站点的推也会不完整。

    已经向WP官方报告了这个问题。

    我个人认为,这个问题不算太大——毕竟用手机写博客很累,而如果真有这样的情况,先放一个draft上去也是不错的做法。

  • Hello, My Android(三)

    界面设计完成后,我要开始为那个Button的单击事件设计响应函数。

    在Android中,事件的设计也很诡异。我们先来看代码:

    (more…)

  • Hello, My Android(二)

    接下来,我们继续看属于LinearLayout的子控件的两个控件:TextView和Button。有关Android界面中可以用到的Widget有哪些我会在以后再描述。

    ===================

    (more…)

  • Hello, My Android!(一)

    我想,部分是受到了山寨机也即将支持Android的鼓舞,最近我下载了一套Eclipse Ganymede+Android SDK,开始看看在这套著名的API下开发Android应用会是怎样的体验。 不是说以前没有尝试过开发手机下的应用。比如,在我04年用Palm的时候,06年用WM的时候,08年用Symbian的时候……不过都可耻滴放弃了:

    • 放弃Palm是因为它的开发理念和我习惯的事件驱动相差实在太远;
    • 放弃WM是因为那时(包括现在)很BSMS;
    • 放弃Symbian是因为我有一个朋友开的公司将Symbian开发做到了极致,我肯定超不过他的水平……

    好吧,让我来看看Android……

    ===================

    当然,如何设置ADT(Android Eclipse Plugin)我就不说了(什么,你不知道怎么玩Eclipse?这个这个……);怎么用Wizard来创建基本的框架我也不多说了。我只说说接下来我做的事情。 首先,我先创建了一个Run的配置,然后就开始运行。Android模拟器顺利的启动了,新创建的项目也顺利执行。然后我开始看整个项目的结构:

    HelloMyAndroid
    ├─assets
    ├─bin
    │  └─com
    │      └─android
    │          └─tr
    │              └─testcase
    ├─res
    │  ├─drawable
    │  ├─layout
    │  └─values
    └─src
        └─com
            └─android
                └─tr
                    └─testcase

    在这个结构中:

    • assets目录目前是空的,我也暂时先不管这个目录派什么用场。不过从英文名可以推测是放置一些“有用的东西”;
    • bin目录下有三个文件:classes.dex, HelloMyAndroid.apk, resources.ap_。根据说明,这个apk文件就是以后安装应用程序到手机上时需要使用的打包文件;
    • bin目录下还有一个很深的目录结构,它其实代表了我创建这个程序时所选择的包:com.android.tr.testcase。在testcase目录下是编译好的class文件。
    • res目录下给出了Android程序中最常用的三种资源:drawable,layout,values。在drawable目录中只有一个icon.png,这个图标会成为我们程序的图标;layout目录中目前只有一个main.xml,在这个xml文件中,描述了程序界面——应该说,用xml描述界面没有什么不对的,但是如果没有一个GUI来辅助用户设计界面是8HD的;values目录中有一个strings.xml文件,这里保存着程序中使用到的字符串(你当然可以选择不用这种方式来保存、使用字符串,但是会失去i18n的灵活性)。
    • src目录下,又是一个对应于我开发这个程序时所选择的包的路径。在testcase目录下,有两个文件:一个是HelloMyAndroid.java,一个是R.java。前者当然是我编写的源文件,而后者是根据res目录中资源的情况自动生成的一个资源-ID对照表。

    =================

    由于我准备在一个很常规的Hello World程序中增加一些新东西,所以我第一步就开始修改界面。为此,我修改了res/layout/main.xml:

    <?xml version=1.0 encoding=utf-8?>
    <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android
                        android:orientation=vertical
                        android:layout_width=fill_parent
                        android:layout_height=fill_parent
    >
        <TextView
            android:id=@+id/lblHello
            android:layout_width=fill_parent
            android:layout_height=wrap_content
            android:text=@string/hello
        />
        <Button
            android:id=@+id/btnClickMe
            android:layout_width=fill_parent
            android:layout_height=wrap_content
            android:text=@string/btn_click_me
        />
    </LinearLayout>

    我选择使用LinearLayout来线性安排我的控件(在Android中称为“Widget”),而android:orientation=vertical表示这个布局将是竖直方向的;android:layout_width=fill_parentandroid:layout_height=fill_parent表示这个布局的宽度、高度都将填充整个父控件的空间(这里就是整个屏幕)。 (未完待续)