新足迹

 找回密码
 注册

精华好帖回顾

· 芝麻绿豆买房记--1月3日填坑完毕-不容易啊(图片已撤) (2007-9-5) 芝麻绿豆 · 纯手工-中产阶级的 Brioche à tête (2010-6-24) 大胃
· 彩妆系列征文-单眼皮的痛苦 (2008-11-17) talpey · 和尚的墨尔本---我的墨尔本同事们 (2004-12-19) 老实和尚
Advertisement
Advertisement
查看: 3447|回复: 37

Android OS 专用贴 [复制链接]

2010年度奖章获得者

发表于 2010-7-7 14:52 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
开个贴, 好把Android相关的信息集中到一起。

Q。那个Memory card好? 多大,对少钱? A: SanDisk 16G $80, 8G $40
Q. 我想看.avi, .rmvb, .mp4 ...那个app最好用? A: Rock Player (you need AppInstaller from Matketplace to install this .apk)
Q. iTune for Android? A: DoubleTwist

Android 开发

SDK: http://developer.android.com/sdk/index.html
IDE: http://www.eclipse.org/downloads/ (I downloaded Eclipse IDE for Java EE Developers, 206 MB)

Hello World

http://developer.android.com/guide/tutorials/hello-world.html
http://www.devx.com/wireless/Article/39101/1954

Publishing Android Apps to Marketplace

http://developer.android.com/guide/publishing/publishing.html

Before you can publish software on the Android Market, you must do three things:
Create a developer profile
Pay a registration fee ($25.00) with your credit card (using Google Checkout)
Agree to the Android Market Developer Distribution Agreement


Android 2.2 Platform Highlights

http://developer.android.com/sdk/android-2.2-highlights.html

[ 本帖最后由 dalaohu 于 2010-7-10 15:06 编辑 ]

评分

参与人数 4积分 +37 收起 理由
月亮粑粑 + 2 感谢分享
degra + 15 你太有才了
bulaohu + 16 你太有才了

查看全部评分

Advertisement
Advertisement

发表于 2010-7-7 14:55 |显示全部楼层
此文章由 tigerszheng 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 tigerszheng 所有!转贴必须注明作者、出处和本声明,并保持内容完整
现在买8g 的卡最划算的。

现在不看video的,等下面的人来说的

发表于 2010-7-7 15:10 |显示全部楼层
此文章由 remey 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 remey 所有!转贴必须注明作者、出处和本声明,并保持内容完整
关于卡,就买class6的8G的卡吧。。不用看16G的。。绝对够你用了

Android的系统一开始出来就定位在communication phone。。不像iphone定位在娱乐上面。。所以多媒体方面很弱的说。。

基本都是软件解码,不是硬件解码。。。所以,现在好用的软件不是很多。。。

我给你一个论坛,好好研究研究就好了,很多软件还是满有意思的。。。google的软件不错

http://www.hiapk.com/bbs/index.php

先注册一个gmail吧。再把google下面的在线软件好好研究研究。很多都是很不错的。。。呵呵

你也可以加我msn。。。互相进步。。。

我推荐一个屏保,zagg的。。很不错

[ 本帖最后由 remey 于 2010-7-7 15:17 编辑 ]
好熊猫进天堂,坏熊猫走四方

毋忘九一八、还我钓鱼岛

2010年度奖章获得者

发表于 2010-7-7 15:19 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
8G 那么小? 我iphone16G 对我来说差不多。

2010年度奖章获得者

发表于 2010-7-7 20:15 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Android 真TM比苹果难用好多。 我还真花了好一会才稍微有了点头绪。。。。

不过这根开源软件有很大的相似,一旦上手后才会有感觉。 很喜欢他的开放性,当个U盘的感觉很好

2010年度奖章获得者

发表于 2010-7-8 16:00 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
WP7还没出来,要不就先玩玩Android SDK,有兴趣的朋友吗?
Advertisement
Advertisement

2007 年度奖章获得者

发表于 2010-7-8 16:05 |显示全部楼层
此文章由 coolioo 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coolioo 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Android SDK用啥写的?Java??

2010年度奖章获得者

发表于 2010-7-8 16:14 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 coolioo 于 2010-7-8 16:05 发表
Android SDK用啥写的?Java??


yea using the lovely Java

If I ever actually doing it, I'll keep posting some tips and other dev info ie. debug/deployment...etc

2010年度奖章获得者

发表于 2010-7-8 16:17 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 remey 于 2010-7-7 15:10 发表
关于卡,就买class6的8G的卡吧。。不用看16G的。。绝对够你用了

Android的系统一开始出来就定位在communication phone。。不像iphone定位在娱乐上面。。所以多媒体方面很弱的说。。

基本都是软件解码,不是硬件 ...


搞了个 SanDisk 16G 的。没见32G 的

发表于 2010-7-9 08:53 |显示全部楼层
此文章由 ingeer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ingeer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
弱弱的問一下,ANDROID所有的APP 都是用JAVA嘛?沒有NATIVE CODE開發的?

发表于 2010-7-9 09:08 |显示全部楼层
此文章由 bulaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bulaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 ingeer 于 2010-7-9 08:53 发表
弱弱的問一下,ANDROID所有的APP 都是用JAVA嘛?沒有NATIVE CODE開發的?


从源代码上来看,都是java的
Advertisement
Advertisement

2010年度奖章获得者

发表于 2010-7-9 09:16 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
java is Android's "native code" if you want to develop android apps

just like objective-c for iPhone and .net for WP7

2010年度奖章获得者

发表于 2010-7-10 14:42 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
用了doubletwist,不错界面更iTune一样,用法也一样。 他还自动import iTune的playlist

推荐一下 http://www.doubletwist.com/dt/Home/Index.dt

媒体播放器我用Rock Player 也不错。
下载 http://www.xperiax10.net/2010/06 ... yer-hands-on-video/

安装这个.apk 你要先去Marketplace 装个App Installer.

2010年度奖章获得者

发表于 2010-7-10 14:59 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我装好了 Eclipse-jee-helios 和 Android SDK (android-sdk_r06-windows)

怎么在Eclipse 里见不到有 Android Project 啊??

NND 开源的东西我最讨厌这种没谱的事。

头像被屏蔽

禁止发言

发表于 2010-7-10 16:25 |显示全部楼层

问个小白问题,wiki上面有个ide 比较图

此文章由 iami 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 iami 所有!转贴必须注明作者、出处和本声明,并保持内容完整
http://en.wikipedia.org/wiki/Com ... opment_environments

myEclipse, rational, netBeans都带GUI builder,是不是说可以像visual studio那样dragn drop的写程序?它们可以拿来开发android apps吗?
签名被屏蔽

2010年度奖章获得者

发表于 2010-7-10 17:32 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
开发环境貌似搞定了。

首先你要下载, JDK, Eclipse Android SDK. 你的机器是64位的话,确保JDK (JRE) 和 Eclipse是64的。

都安装好了之后,你还是不能开发Android app的!  还需要一些设置! 开源软件的通病!

Download (* make sure if 64 then all using 64)

1. JDK (JDE)

2. Eclipse (Eclipse JEE Helios in my case)

3. Android SDK

Install, unpack as the usual. and you still need few more configs to make it work!

1. Add Android tools to PATH – the system envorinment variable.

Path  = [Path]\android-sdk_r06-windows\android-sdk-windows\tools

2. Open Eclipse –> Help menu –> Install New Software

3. In the popup Click “Add” and enter

Name: Android Plugin
Location: https://dl-ssl.google.com/android/eclipse/

4. click OK and it will find the Android Tools and populate the the area below

5. click “Next” to complete the wizard… accept T&C…etc

6. Eclipse restarts

7. Windows –> Preferences

and click “Android” from the left options.

then enter the Android SDK Location [Path]\android-sdk_r06-windows\android-sdk-windows

8. Done

Now when you Create a new Project, you’ll see “Android” showing in the wizard

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
Advertisement
Advertisement

2010年度奖章获得者

发表于 2010-7-10 22:44 |显示全部楼层

My First Hello World Android

此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
每几步操作就有 crash, 非常的不稳定。

不过还是把Hello World运行起来了。 上图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1积分 +4 收起 理由
iami + 4 恭喜,第一步踏出去了!

查看全部评分

头像被屏蔽

禁止发言

发表于 2010-7-11 00:12 |显示全部楼层

界面是用哪个包?swing还是awt?

此文章由 iami 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 iami 所有!转贴必须注明作者、出处和本声明,并保持内容完整

2010年度奖章获得者

发表于 2010-7-11 01:01 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
界面你指的是Emulator?

那是Android SDK来的。

关于我之前提到的Crash特别多,大家要注意的是JDK 64 的话, Eclipse 一定要64。

后来我有在另一台笔记本上来了一遍,一次成功, 很稳定。

[ 本帖最后由 dalaohu 于 2010-7-11 01:06 编辑 ]
头像被屏蔽

禁止发言

发表于 2010-7-11 01:05 |显示全部楼层

我是指java class里面写app 的ui,用的也是java自带的swing/awt吗。

此文章由 iami 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 iami 所有!转贴必须注明作者、出处和本声明,并保持内容完整

2010年度奖章获得者

发表于 2010-7-11 01:07 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Eclipse -> Android Project

that's all
Advertisement
Advertisement

2010年度奖章获得者

发表于 2010-7-11 01:10 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
haha iami. 别恭喜太早。

以前iphone 我也是搞了个hello world就结束了。 哈哈

不过那时因为objective-c 实在太恶心, IDE太弱智。

这次java应该算半个本行了。

2010年度奖章获得者

发表于 2010-7-11 22:28 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这里是如何在手机上调试程序。

1. 驱动
WIN7上自带驱动,否则在 [Path]\android-sdk_r06-windows\android-sdk-windows\usb_driver

2. 手机设定。
Settings -> Applications -> Development -> Turn on USB debugging

3. Project设定。
Project 必须是Android 2.1 , 很显然 2.2的话无法在你的手机上运行。

4. Run Configurations
under Target tab -> Development Target Selection Mdoe set to Manual
and untick the AVD you've created eariler

5. Run your application

You'll see a "Android Device Chooser"
Select your Android phone and click OK!

There's a command line help you check what are the connected devices.
>adb devices

[ 本帖最后由 dalaohu 于 2010-7-11 23:30 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

发表于 2010-7-12 00:01 |显示全部楼层
此文章由 ericlgq 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ericlgq 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我今天在家里的机器上弄一个JAVA的程序,64位JDK+64位ECLIPSE也是CRASH无数。
最后全换了32位的,什么问题都没有了。

OS用的是64位的WIN7.

2010年度奖章获得者

发表于 2010-7-12 00:06 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
对我两台都是WIN7 64 的。

java虚拟机和android模拟器,吃起内存来吓死人哦。

现在稍稍好一点了, 带我始终无法打开design view 下的main.xml

UI我只好全部手写了。

2010年度奖章获得者

发表于 2010-7-17 00:47 |显示全部楼层

SMS 到 Android Enumlator

此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你可能会开发一些更sms有关的app, 那如何发短信到模拟器?然后你的程序才能相应的处理动作。

1. Make sure you have Telnet installed.

if you are using windows, go to Add/Remove program and install windows component and select Telnet client to install

2. open cmd promot and enter

3. Telnet to your emulator

telnet localhost 5554

4. Once you in, enter

sms send 12345678 This is my test message

that's it, now your Emulator should received your message and triggers your program to perform certain actions. ie. intecept this message the chuck it into your local db or calling a webservice...etc

All tested and working on my windows 7 64x

Ok happy cracking!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
Advertisement
Advertisement

2010年度奖章获得者

发表于 2010-7-17 01:36 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
难得半夜有空,在接着来一段吧。

刚才说了如何发短信到模拟器, 那么现在来看一下你的程序在模拟器上如何截获这条短信呢?

首先之前的那个HelloWorld app 是 HelloAndroid.java, 现在我有创建了一个 SmsReceiver.java

先说一下有趣的一点。 HelloWorld 是一个App 所以他 继承了(extends) Activity。
而现在我要做的这个拦截短信程序是一个Service,始终在后台运行的,所以他 继承了 BroadcastReceiver

看看程序吧, 很简单。 一旦有短信来, 他就会自动截获, 然后读取内容,显示在屏幕上。 (无论用户在那个程序内,都能看见这个popup)。

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;

public class SmsReceiver extends BroadcastReceiver
{
        @Override
        public void onReceive(Context context, Intent intent)
        {
                //---get the SMS message passed in---
        Bundle bundle = intent.getExtras();        
        SmsMessage[] msgs = null;
        String str = "";            
        if (bundle != null)
        {
            //---retrieve the SMS message received---
            Object[] pdus = (Object[]) bundle.get("pdus");
            msgs = new SmsMessage[pdus.length];            
            for (int i=0; i<msgs.length; i++)
            {
                msgs = SmsMessage.createFromPdu((byte[])pdus);               
                str += "SMS from " + msgs.getOriginatingAddress();                     
                str += " :";
                str += msgs.getMessageBody().toString();
                str += "\n";        
            }
            //---display the new SMS message---
            Toast.makeText(context, str, Toast.LENGTH_LONG).show();
        }
        }
}


你可以试着运行一下看。。。。 他目前还不会工作的。

因为OS并不知道这个Service的存在, 现在我们要做的就是想办法让吧这个Service注册到系统。

也很简单, 打开AndroidManifest.xml (我的Eclipse crash 每当我打开, 所以用写字板好了)
在application block 里加入

<receiver android:name=".SmsReceiver">
      <intent-filter>
          <action android:name="android.provider.Telephony.SMS_RECEIVED" />
      </intent-filter>
</receiver>



<uses-permission android:name="android.permission.RECEIVE_SMS" />

这个的道理和 global.ascx, 或windows service 是一模一样的。

就这么简单。 这时候你发短信的话,就应该能看到跟我截屏一样的效果了。


在我的 HTC Desire 上也实验成功了。 已经把这个程序装在Desire上了, 收到别人的短信时, Desire上就会跳出这个优雅的popup!

FREAKING AWESOMENESS! RARRRRRRR

您看这开心就加分吧 - 别手软哦。

下一步我想象做啥, 本来想把短信存在数据库里, 想想又不实用, 我想想。。。。

[ 本帖最后由 dalaohu 于 2010-7-17 02:04 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1积分 +8 收起 理由
bulaohu + 8 感谢分享

查看全部评分

2010年度奖章获得者

发表于 2010-7-17 02:27 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
想看看大家们有什么建议吗?

想一些不复杂,又比较实用, 有一点点酷的东西吗?

主要目的以教育,普及为主。

游戏就不要了,本人手机上从没有游戏,我也从来没做过游戏。

本来我想做个记录汽油的。 我的iphone上有个gas log, Android 貌似没有。 可又觉得这太单调,又不够酷。

2010年度奖章获得者

发表于 2010-7-17 22:41 |显示全部楼层

Android 的本地数据储存

此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
还是介绍一下吧, 尽管我对本地数据兴趣不大。

Android 本地数据用 SQLite (download the Command line shell from http://www.sqlite.org/sqlite.html

什么是 SQLite?

Wiki: http://en.wikipedia.org/wiki/SQLite

SQLite is not a stand-alone process, 是跟程序一体的,动态调用, 是一个开源的, file based, relational 数据库。
× 注意 Windows Phone7 用的不是 SQLite.

如何在Android 上建一个数据库呢?

跟上次的方法差不多, 你想连上模拟器, 然后就看你command line 的功力了。
× 注。 有UI management console 的, 我没兴趣找了, 手机上的数据库command line足够了。
还是找了一个 SQLite browser  http://sourceforge.net/projects/sqlitebrowser/


SQLite 的语法是完全不陌生的。

To Create a Table

sqlite> CREATE TABLE tbl2 (
   ...>   f1 varchar(30) primary key,
   ...>   f2 text,
   ...>   f3 real
   ...> );
sqlite>

To Insert into a Table

sqlite> insert into tbl1 values('hello!',10);
sqlite> insert into tbl1 values('goodbye', 20);

To Select from a Table

sqlite> select * from tbl1;

说这点足够了,对了SQLite没有 Stored Proc 和其他一些安全,扩展的高级应用, 它仅是以个简单方便给你存数据的地方。

[ 本帖最后由 dalaohu 于 2010-7-17 23:08 编辑 ]

2010年度奖章获得者

发表于 2010-7-17 23:01 |显示全部楼层

Application 访问数据库

此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
有了数据库,再简单的说一下Applicaiton 是如何访问数据库的吧。

先声明一下, 数据库这一块,我本人没有实际运行。 只是根据Android 的 Doc 和自己的经验,给大家概括总结一下, 意在普及,交流。
但质量绝对有保证,这个你可以放心。


首先你要import 几个 android 的 namespace (.net 的叫法, 我不知道java是如何称呼的)

import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

然后,你的class 要 extend SQLiteOpenHelper

接下来就比较简单了。

这个article还可以, 你可以看看 http://www.reigndesign.com/blog/ ... droid-applications/

我总结一下, 主要就是。

在SQL helper class 里

你记住这个,db.execSQL() to create table, db...etc
* db is an instance of SQLiteDatabase

在Application caller 里

DatabaseHelper dbHelper = new DatabaseHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();

now you can execute the queries from the application caller.

db.insert(...);
db.query(...);
db.delete(...);

基本上就是这样, 毫无特殊之处。

[ 本帖最后由 dalaohu 于 2010-7-17 23:41 编辑 ]

评分

参与人数 1积分 +4 收起 理由
iami + 4 谢谢奉献,java里叫package

查看全部评分

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部