2009年10月20日火曜日

2009年10月13日火曜日

Androidをターミナルで開発する(アプリケーションの開発)

参考サイト(英語)

ソースを書き直して動かそうとすると「INSTALL_FAILED_ALREADY_EXISTS」という警告が出る。
$ant reinstall
とすると正常にインストールが完了する。

ChromeOSのソースコードが公開されたという記事を見つけた。

参考サイト:SEO-LPO.net

/buildbot/snapshots/chromium-rel-linux-chromeosにある最新のディレクトリからchrome-linux.zipを試しにダウンロードしてみる。

サイズは139MB。解凍して543MB。かなりデカい。

解凍したディレクトリをのぞくとgoogle-chrome, chromium-browserとそれほど変わりない構成。

chromeの実行ファイルが532MBもある。これを実行すると少しかっこいいgoogle chromeブラウザが起動する。

オプションにはOSっぽいメニューが追加されている。(タッチパッドの感度とか)

今渡こそ偽者じゃありませんように。

2009年10月12日月曜日

Androidをターミナルで開発する(HelloWorldのインストール)

付属のドキュメントを参考に試した。

androidのツールをインストールしておいた方が効率いいのでインストールをする
$ gedit ~/.bashrc
最終行に下記を追加
export ANDROID_HOME=~/xxx/android-sdk-_x86-/tools
export PATH=$PATH:$ANDROID_HOME

前に作ったディレクトリに移動

適当にjavaファイルを作成
HelloWorld.java
package com.example.myapp;

import android.app.Activity;
import android.os.Bundle;

public class HelloWorld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}


HelloWorld.javaをsrcディレクトリにパッケージに従って配置。

antを使ってビルドする
$ ant debug
※環境変数$JAVA_HOMEを適切に設定しておかない警告が出る。
追記:ant installと入力するとインストールを自動でしてくれる。

成功したら
$ emulator -avd MyFirstApp
でエミュレータを起動。

別にターミナル起動、作業しているディレクトリに移動。
$ adb install bin/MyFirstApp-debug.apk
を実行。

エミュレータ内のAndroidのタブをクリックしてアプリケーションの一覧を表示。一覧の中にMyFirstAppという項目があること確認。クリックして実行し、文字列が出てこれば成功。

もし、一覧に無かったり、クリックしても実行されない場合、エミュレータを再起動。

Androidを端末で開発する

ダウンロードしたSDKに入っていたドキュメントを参考に試した。

解凍してできたディレクトリ直下のtools/ディレクトリに移動

プロジェクトの作成
$./android create project \
--target 1 \
--name MyAndroidApp \
--path ./MyAndroidAppProject \
--activity MyAndroidAppActivity \
--package com.example.myandroid

AVD(アンドロイド仮想デバイス)の作成
$./android create avd --name MyAndroidApp --target 1

エミュレータの起動
$./emulator -avd MyAndroidApp

トラブルを恐れずに気長に待つ

2009年10月11日日曜日

ChromiumでlocalStorageを動かす方法ChromiumではlocalStorageがどうにも動かない

参考ページ
端末からの起動オプションに「--enable-local-storage」をつける
$ chromium-browser --enable-local-storage
  window.addEventListener("click", function(){
localStorage.key1 = "value1";
alert(localStorage["key1"]);
}, true);


原文:In the current dev release there is no support for events nor for quotas. Event support should land by 9/30, with quotas landing by 10/9. The goal is to remove the flag by mid October on dev channel, and include this feature in the 4.0 launch.
和訳:9/23/2009現在、開発版ではevent,quotasはサポートしていない。eventは9/30,quotasは10/9頃にサポートされ、10月中旬には起動フラグがなくなる。(ここから確信が無い)これらの変更はversion4.0以降にも含まれる。

もうちょっと待つとデフォルトでlocalStorage使えるようになる(予定)ということだろうか。

FirefoxのlocalStorage的なやつで気分転換する。
参考ページ
最新版を使っていれば本物のlocalStorageを使えるみたいだがFirefox3.5でないのでこちらで我慢する。
var ls = {
init: function(){
window.addEventListener("load", function(){
globalStorage['localhost'].visits =
parseInt( globalStorage['localhost'].visits || 0 ) + 1;
alert(globalStorage['localhost'].visits);
}, true);
}
}

ls.init();

Chromiumが悪いのかWebkitが悪いのかどちらなんだろうか?

2009年10月8日木曜日

for文を使用してaddEventListenerを割り当てる(javascript)

参考ページ
    var handlers = document.getElementsByTagName("a");
for(var i = 0;i < handlers.length;i++){
handlers[i].addEventListener("click", function(event){
foo(event.target);//クリックしたelementをfoo関数に渡す
}, true);
}

どうやらこれで動いているんだけど、本当にこれで正しいのかはまだ分からない。

2009年10月1日木曜日

Chromiumの拡張機能(Backround Pagesの最小構成)

Chromiumのサイト(Extensionsのところ)
技術評論社のGoogleChrome拡張機能に関する連載
AutoPagerize For Chromeのページ
Chromiumのサイト(Extensionsのサンプルのところ)の「Subscribe in Feed Reader」のソースコード

manifest.json
{
"name": "My First Extension",
"version": "1.0",
"content_scripts": [ {
"js": [ "jquery-1.3.2.js", "background.js" ],//ちなみにjqueryも使うことが出来る。
"matches": [ "http://*/*", "https://*/*" ]
} ],
"description": "The first extension that I made.",
"background_page": "background.html",
"run_at": "document-start"//これは無くてもいい
}
background.js
window.addEventListener("click", callFunc);

function callFunc(){
chrome.extension.connect().postMessage();
}
background.html
<html>
<head>
<script>
chrome.extension.onConnect.addListener(function(port){
window.open("helloworld.html");
});
</script>
</head>
<body>
background
</body>
</html>
helloworld.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script src="http://www.google.com/jsapi"></script>
<title>TEMPLATE</title>
</head>
<body>
<h1>HELLO WORLD!!</h1>
</body>
</html>