2010年12月7日火曜日

速報! Android2.3 Gingerbreadの新機能!

ついに、Android2.3 Gingerbreadが、Nexus S と共に公開されました。

新機能は以下の様になっています。

・UIの刷新 画面が、簡単で早くなった。
・新入力方式 入力方式が新しくなり、文字が選択できるようになった。
・バッテリー管理の改善 電池のもちがよくなった。
・VoIP もう、電話番号なんてなくても電話ができる。
・NFC お財布携帯になる!!(お財布携帯用アプリが載れば。。。載るかな?)。
・ダウンロード改善 WebやE-Mailのダウンロードがしやすくなった。
・マルチカメラ対応 画面側のカメラにも対応。(テレビ電話できる!)

また、上以外にも、ゲームが開発しやすくなったり、新しい動画方式(WebM)に対応するなど、新しい機能が目白押しです!

さあ、ついにくるぞ!Android!

最高のAndroid - Nexus S 発表!!

2010年の終わりに、ついに、ついに、最高のAndoird、Nexus SがGoogleから発表されました!

それは、最新のAndroid OS、Android 2.3 Gingerbreadを搭載し、
それは、1Gのプロセッサを積み、
それは、16Gのストレージを持ち、
それは、近接センサーを備え、
それは、新しい入力方式で構え、
それは、VoIPを標準で装備しています。



※画像はGoogleの紹介ページより

アメリカに居る人は、12/16から購入可能。
12/20からオンラインでも購入可能!!

未来に行くなら、Nexus Sを持て!!!

2010年12月6日月曜日

Channel API - Google App Engine で Push

わぁ!

いつの間にか、Channel API がリリースされてる!

という訳で、本日はGoogle App Engine SDK 1.4よりサポートされたChannel API のお話です。

Channel APIとは、Google App Engine 上でサーバプッシュを実現する仕組みです。

サーバプッシュとは、サーバの状態に変更があったときに、クライアント(ブラウザ)に変更を通知する手段です。

サーバプッシュを使うと何がよいか、というと、Webアプリケーションにリアルタイム性を取り込むことができるのです!

Webアプリケーションでチャットとか、ソーシャルゲームが可能になるのです!

サンプルコードを、書くぞ!!
(今日は、寝ます。。。コメントいただけたら、優先順位を上げてサンプルコード書きます。)


2010年11月29日月曜日

Nexus S(多分)が、アメリカの連邦通信委員会に登録されてる!

Nexus Sは、GoogleがNexus Oneの後継機として世に送り出すとされているAndroidスマートフォンです。

販売される、販売される!って噂が出ているのですが。。。。

最近、Nexus Sの画像とされる情報を載せている「Engadget」によると、アメリカの連邦通信委員会(アメリカで通信機器の許認可をしているところです。)にNexus Sとされる登録がされたとのこと。

もうすぐ、最高のAndroidがお目見えする!

デュアルコアとの情報もあり、とても楽しみです。

ソース:Engadget

2010年11月28日日曜日

【入門】Androidを飼う前に、ちょっとだけ知っておくべきこと。

GAGA女史も声高に叫んでいますが、Androidの時代が日本でも来ましたね。すばらしい。
でも、Androidについての誤解がまだ多いので、ちょっとここでまとめをしておきましょう。
①Androidって携帯じゃないの。ソフトなの。
②Androidは「無料」なの。
③Androidがバージョンアップできなくなるのは、「つなぎ」を作るのに飽きちゃってるからなの。


①Androidって携帯じゃないの。ソフトなの。
Androidとは、ソフトウェアです。OS(オペレーティングシステム)という種類の。
OS(オペレーティングシステム)とは、コンピュータの基本的なコントロールをしてくれるソフトウェアです。通信とか、画面表示とか。Windowsとか、Max OSXとかも、OS(オペレーティングシステム)です。iPhoneでも、iOSというOSが動いています。
絵にすると、↓な感じです。

図 Android携帯構成

補足すると、OSだから、ファームウェアさえあればどんなところでもAndroidは動くのです。今動くのは、ロボットとか、TVとか、タブレットとか、PCとか。


②Androidは「無料」なの。
Androidは、「オープンソース」の、無料のソフトウェアなのです。
「オープンソース」とは、誰でもソースコードを取得することのできるソフトウェアのことです。
ソースコードとは、コンピュータに入力すると、ソフトウェアが出来上がるようになるデータです。
つまり、Androidは、だれでも、無料で入手できるのです。
ソースコードはここで公開されています。


③Androidがバージョンアップできなくなるのは、「つなぎ」を作るのに飽きちゃってるからなの。
Android自体は、常にバージョンアップしています。現在(2010/11/28)時点では、最新バージョンが2.2で、あと数週間後に2.3が公開されるとの情報があります。楽しみ。
でも、Xperiaはバージョン2.1で、IS01はバージョン1.6だったりします。なんで最新バージョンが動かないのか?
AndroidがOSであることは①で記しましたが、Androidが携帯上で動くためには、「ファームウェア」が必要なのです。
ファームウェアは、Androidと、携帯をつなぐためのものです。
Androidはファームウェアを通して携帯とつながることで、いろいろな携帯上で動くことができるのです。
で、Androidが新しくなると、ほとんどの場合、ファームウェアも新しくしなければなりません。
ので、その携帯用のファームウェアがないと、Androidはバージョンアップすることができないのです。XperiaもIS01も、Android2.2用の公式ファームウェアがないので、Android2.2にすることができないのです。


Androidはすばらしいです。Androidのことをちょっとだけ知っておくと、その素晴らしさをもっと味わえると思います。

2010年11月25日木曜日

Windowsでも、OpeniBootがいける!か?

OpeniBootを利用すると、iPhone上でAndroidを動かすことができます。
OpeniBootを利用するためには、LinuxかMacが必要である、と以前書きましたが、状況が変わりつつあるようです。

Windowsでも、いけるかも。

OpeniBootを利用するときに、OIBCというツール(コマンド)を利用するのですが、それのWindows版がコミットされているのです。

期待。

2010年11月21日日曜日

OpeniBoot -iPhoneでAndroidを動かす前に知っておくコト。(Windowsで使うには)

もうすぐOpeniBootがiPhone4や、iPadに対応する、との情報があります。
OpeniBootを使うと、iPhone4上でAndroidを動かすことができます。

ワクワクしますね。今、最高(私見)のデバイスで、最高(私見)のOSを動かす。と。

でも、気をつけてください。
Windowsを使ってOpeniBootを使うためには、ひと手間必要です。
実はOpeniBootは、今でも、古い(失礼。)iPhoneであればAndroidを動かすことができるのですが、残念ながらOpeniBootをiPhoneに導入するためには、LinuxもしくはMac(WindowsではないOS)が必要なのです。

。。。残念。このままでは、Androidのすばらしき、自由な世界への道が閉ざされてしまう。。。

私のおすすめは、古くなったWindowsに見切りをつけ、Ubuntu Linuxを使うこと、ナノですが、いろいろなモノが足かせになってそれができない方がいっぱいいらっしゃることを想像するのです。苦しき、この世界。

しかし、心配はいりません。どんなに冷たい風が吹いていても、マッチの火はつくのです。
Windows上でLinuxを動かすことで、OpeniBootを使うことが可能です。無料で、意外と簡単。

そのために必要なツールが、Virtual Boxです。無料。
Virtual Boxを使うと、Windows上で、あたかも1アプリケーションのようにLinuxが利用できて、それを使ってOpeniBootを使うことができます。

Virtual Boxと、その上へのUbuntu Linuxの導入方法の説明は、↓のサイトがすばらしくよく説明されているので、ここではお譲りします。

インストールが終わったら、Ubuntu Linux上にOpeniBootのツールをインストールするのですが、まだ、iPhone4、iPad対応版のOpeniBootは公開されていません。ので、公開されたら、インストール、利用方法を(きっと)お知らせします。

2010年10月31日日曜日

AndroidでEメール

Androidでは、普通のJavaMail APIは使えません。
で、Google が Android用のJavaMailを出しています。

こちら。
http://code.google.com/p/javamail-android/

サンプルコードもあります。
http://www.jondev.net/articles/Sending_Emails_without_User_Intervention_(no_Intents)_in_Android

ただ、IMAPでの取得サンプルが、ない。
今度、ここにサンプル載せますね。

今日は、ねむねむで、無理です。

2010年10月26日火曜日

AndroidのView.onDrawで、改行する。

Androidで、カスタムViewを作りたいとき、
Viewクラスのサブクラスを作って、onDrawメソッドをオーバーライドして、
Javaコード上でViewのデザインをしたいときがあります。

で、そんなときに、「文字」を入れたいときがあるのだけれど、
枠内に文字を納めるために、改行を入れないといけない。

だがしかし、AndroidのAPIにはそれらしいモノは、ない。

なので、自分で書いてやらないと行けない。

皆さんも結構書くコードだと思うので、サンプルコードを載せておきますね。

↓な感じです。サンプルのため、パラメータ等もonDrawメソッドに詰め込んであるけれど、適切に、切り貼りしてください。

public class LineBreakInspectView extends View{
public LineBreakInspectView(Context context) {
  super(context);
 }

 @Override
 protected void onDraw(Canvas canvas) {
  super.onDraw(canvas);
  int textSize = 12;
  Paint paint = new Paint();
  paint.setTextSize(textSize);
  paint.setColor(Color.WHITE);
  String message = "僕は、今日も一日、生きてしまいました。答えも出ないまま。しょうがない、で済ましてよいようなことではない。用な気がするが、そんなこと、気にしてられない。";
  int maxWidth = canvas.getWidth();//150pxで改行する。
  int lineBreakPoint = Integer.MAX_VALUE;//仮に、最大値を入れておく
  int currentIndex = 0;//現在、原文の何文字目まで改行が入るか確認したかを保持する
  int linePointY = textSize;//文字を描画するY位置。改行の旅にインクリメントする。

  while
(lineBreakPoint!=0){
   String mesureString=message.substring(currentIndex);
   lineBreakPoint=paint.breakText(mesureString, true, maxWidth, null);
   if(lineBreakPoint!=0){
    String line = message.substring(currentIndex, currentIndex + lineBreakPoint);
    canvas.drawText(line, 0, linePointY, paint);
    linePointY += textSize;
    currentIndex += lineBreakPoint;
   }
  }
 }
}

...。

できるのなら、TextViewを使って組んだ方が良さそうですね。


2010年10月24日日曜日

AndroidでAdmobを表示する方法

Androidアプリを作って、マニュアル通りにくみ上げたのだけれど。。。広告が表示されません。

なんと、マニュアルの手順がたりないのです。(たぶん。)
マニュアル通りにやると、
10-24 12:11:02.362: ERROR/AdMobSDK(285): could not find com.admob.android.ads.AdMobActivity, please make sure it is registered in AndroidManifest.xml
とか、表示されちゃいます。

ので、ここで改めて、まとめ直しますよ。

手順1. admob-sdk-android.jarにクラスパスを通します。
Admobに登録すると、admob-sdk-android.zipが得られます。
それを解凍すると、admob-sdk-android.jarが得られるので、
それを自分のAndroid Project内にコピー&ペーストします。
コピー&ペーストしたadmob-sdk-android.jarを右クリック→Build Path→Add to Build Pathで、クラスパスに通すことができます。

手順2. AndroidManifest.xmlの編集(マニュアルは、ここの手順が足りません。)
AndroidManifest.xmlに、3つ、追加します。
<application>タグの直下に、
<meta-data android:value="XXXXXXX" android:name="ADMOB_PUBLISHER_ID" />

を挿入します。(きっと、</application>の直前がいいです。)
XXXXXXXは、Admobのサイトで得られる、パブリッシャーID
です。
あと、タグの直下に、
<uses-permission android:name="android.permission.INTERNET" />

を挿入します。(きっと、</manifest>の直前がいいです。)これは広告の取得のためですね。
AndroidManifest.xmlの編集の最後に、Activityを追加します。ここが抜けてる。
タグの直下に
<activity android:name="com.admob.android.ads.AdMobActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="orientation|keyboard|keyboardHidden" />

を挿入します。これにより、広告が取得できるようになる(んだと思います。)
きっと、先ほど挿入したmeta-dataタグの直前がいいです。


手順3. attrs.xmlの編集(新規作成?)
attrs.xmlを、作ったアプリケーションのパス res/values の下に、以下の内容で新規作成します。

<xml version="1.0" encoding="utf-8"?>
<resources>

<declare-styleable name="com.admob.android.ads.AdView">

<attr name="backgroundColor" format="color" />
<attr name="primaryTextColor" format="color" />
<attr name="secondaryTextColor" format="color" />
<attr name="keywords" format="string" />
<attr name="refreshInterval" format="integer" />
<declare-styleable>

<resources>


もし、attrs.xmlが既にあった場合は、<declare-styleable>タグの内容を追記してください。

手順4. 画面に入れる。(Layout XMLへの追加)
画面のxmlで、広告を入れたい場所に以下のViewを追記します。

<com.admob.android.ads.AdView android:id="@+id/ad" android:layout_height="wrap_content" myapp:backgroundColor="#000000" myapp:primaryTextColor="#FFFFFF" myapp:secondaryTextColor="#CCCCCC" android:layout_width="fill_parent"/>



これで、Admobが表示できます!!!

よい、プログラミング生活をお送りください。