スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

組み込み向け軽量key-valueストア「hamsterdb」をAndroidで動かしてみた

どうもです、DUMAPICです。
いつものことですが、ブログは久々になります(汗。
一応初めて来た方のためにお伝えしておくと、私はAndroid端末向けアプリをいくつか開発・公開しているアプリ開発者です。

さて今回は、開発者向けの話題で「hamsterdbをAndroidで動かすまで」という内容です。
つい先日、Twitterでフォローさせていただいた方が、hamsterdb本家のソースコードをAndroidで動かせる共有ライブラリにビルドする形をまとめてくださったので、その成果を使わせていただきました。

この場を借りて「glacefullife-Hamster-DB-for-Android - GitHub」環境を作った@myb1126氏、ならびに今回のお話のそもそもの発端を作った@vvakame氏に御礼申し上げます。
ありがとうございました。



さて、このページを見つけた方はhamsterdbで検索してきた方と思いますので、技術的な前説はなしでいきます。
でもちょっぴり不親切感があるので、ちょっとだけですが前説を。

<お約束>
この記事に書いてあることは無保証です。この手順を行ったことであなたが被ったあらゆる被害・損害に対して、わたくしをはじめ@myb1126氏・@vvakame氏、およびhamsterdb関係者は一切責を負わないものとします。
(協力を得ながら私が勝手にやっていることです。それ以上でもそれ以下でもありません。)


◆本家サイト
hamsterdb - Embedded Database
 http://hamsterdb.com/

◆hamsterdbとは
NoSQLの分類にカテゴライズされることもあるkey-value型のデータストア製品。組み込み向けをウリにしています。そして組み込み向けということは、そう、Androidをはじめとするモバイルプラットフォームで使用できるはず、という着眼ですね。
で、そんなhamsterdbですが、以下のライセンスで提供されています。無償・有償どちらにするかは悩みどころですね。
  • Open Source Licenses(無償版)・・・GPL2ライセンス(... GNU Public License 2 or any later version (or other FOSS licenses). 本家より)。このライセンスでアプリを作るとGPL汚染と呼ばれるソースコードオープン化の連鎖に飲み込まれます。たぶん。詳しいライセンスは本家のこことかここ
  • The Commercial License(有償版)・・・開発者の人数に応じたライセンスになっているようです(2011/04/07時点)。本家HPのここここを参照してください。2011/04/07現在、開発者5名までのライセンスは450ユーロ(日本円で約5.5万円)でした。

◆今回の作業を行った私のPC環境
・Windows7 Pro(64bit)。CPUはIntelハイッテル。
・Eclipse 3.6.2 (ADT 10.0.0導入済)


では、早速いきましょうか。「hamsterdbをAndroidで動かすまでの手順メモ」ベータ版。



まず、手順の大まかな流れです。ちなみにAndorid開発者向けの各種開発環境は導入済みであることを前提とします。また、私はmacを持っていないので機種やOS依存のところは適宜読み替えてください。

1.Windows環境でhamsterdbのソースコードをビルドする環境を構築する
 (1)GoogleのAndroid DevelopersからNDKをダウンロードする
 (2)本家HPからJava-wrapperライブラリとサンプルコードをダウンロードする
 (3)Cygwinをインストールする。

2.Android用共有ライブラリとして本家ソースコードをビルドする
 (1)Cygwin内にNDKを解凍・展開する
 (2)@myb1126氏の「glacefullife-Hamster-DB-for-Android - GitHub」のリポジトリcloneを作成する
 (3)ビルド(ndk-build)!

3.サンプルアプリ内で動かしてみる
 (1)新規にAndroidプロジェクトを作成して、本家のJavaライブラリととサンプルコードを取り込む
 (2)Androidプロジェクト内にビルドでできたsoファイルを配置する
 (3)System.loadLibraryを実装。Db1.javaをちょこっと修正。
 (4)さぁ動かそう

* * * * * * * * *


1.Windows環境でhamsterdbのソースコードをビルドする環境を構築する


(1)GoogleのAndroid DevelopersからNDKをダウンロードする
Android DevelopersページのサイトからAndroid NDKをダウンロードしてください。
私がダウンロードしたのは2011/4/7現在でAndroid NDK, Revision 5b(android-ndk-r5b-windows.zip)でした。

(2)本家HPからJava用ラッパーライブラリ(hamsterdb Embedded Storage Java API)とサンプルコードをダウンロードする
Java用ラッパーライブラリ(nativeメソッドを実装してjavaから扱いやすくしたもの)は、 こちらのページのhamsterdb Embedded Storage Java APIからダウンロード(Sourcesリンク)します。
私がダウンロードしたバージョンは「02/18/11 - hamsterdb-java 0.0.3」で、Sourcesからダウンロードしたファイル名は「hamsterdb-java-0.0.3.tar.gz」でした。
サンプルコードは上記ラッパーライブラリを使用した簡単な動作確認を行うためのものです。
こちらのページの「Samples for Java」にある「Db1.java」をダウンロードしてください。

(3)Cygwinをインストールする。
Androidデバイスで動作するライブラリをWindows環境でビルドするのに必要です。
ビルドできるのであれば実は何でもいいです。扱いが簡単なので私はCygwinを選びました。

まずCygwinを入手します。
Cygwin本家HPにアクセスして、 Cygwinのsetup.exeをダウンロードします(ダウンロードするファイルはsetup.exe単品のみとなります)。 Cygwin本家トップページの「Current Cygwin DLL version」というセクションにsetup.exeというリンクがあるのでそこからダウンロードするとよいでしょう。
私がダウンロードしたバージョンは「1.7.9-1」です。

次に、早速「管理者権限で」今落としてきたsetup.exeを実行しましょう。
以降の細かい手順はこちら「Tech Booster - Android NDKを使う(アプリの高速化)」の記事が詳しいので心配な方は参照してみてください。
なお、インストール時の「Select Packages」では、Develカテゴリー内の下記モジュールを指定してください。
(git関連はわかんなかったので適当ですが問題はなかったです、ハイ)
[gcc]
	gcc: C compiler upgrade helper (3.4.4-999)
[make]
	make: The GNU version of the make utility (3.81.2)
[git]
	git: Fast Version Control System - code files (1.7.4-1)
	git-completion: Fast Version Control System - git bash completion (1.7.4-1)
	git-svn: Fast Version Control System - git-svn conversions (1.7.4-1)
	gitk: Fast Version Control System - gitk-viewer (1.7.4-1)
以上を指定して次に進むと「指定したモジュールが必要とする他のライブラリも落とすよ」画面になりますが、 細かいことは気にせずインストールを完了させてください。 なお、インストール後の動作確認とか設定は、 先ほどご案内したこちらの記事を参考にしてください(.bashrcとか)
続けて次の手順に進みます。

* * * * * * * * *


2.Android用共有ライブラリとして本家ソースコードをビルドする


さあ、ここからが本番です。
ちなみに、便宜上、ここでは以下のような表記をすることにします。
  • Cygwinのセットアップ先(ルートディレクトリ)・・・"%CYGWIN_ROOT%"と表記します。あなたがCygwinのインストール先を"C:\android\cygwin"としていたら、"%CYGWIN_ROOT%"は"C:\android\cygwin"になります。
  • あなたが今ログインしているWindowsアカウント名・・・"%USERNAME%"と表記します。
  • パス区切り文字・・・"/"で表記します。
  • 解凍・展開したNDKのディレクトリ名(フォルダ名)・・・"%ANDROID_NDK_DIR%"と表記。android-ndk-r5b-windows.zipを解凍・展開すると「android-ndk-r5b」になるはず。

(1)Cygwin内にNDKを解凍・展開する。
「%CYGWIN_ROOT%/home」ディレクトリ内に、%USERNAME%と同名のディレクトリがあるはずです。
例えば、インストールした時の(=現在の)Windowsアカウントが「hogesage」であれば、%CYGWIN_ROOT%/home/hogesageのように。
その「%CYGWIN_ROOT%/home/%USERNAME%」ディレクトリ内に、先ほどダウンロードしたNDKのZIPを解凍・展開します。
完了後、「%CYGWIN_ROOT%/home/%USERNAME%/%ANDROID_NDK_DIR%」に、「ndk-build」というファイルと「sources」というディレクトリがあることを確認してください。

(2)@myb1126氏の「glacefullife-Hamster-DB-for-Android - GitHub」リポジトリのcloneを作成する
Cygwinを起動します。
以下のコマンドを実行して、カレントディレクトリを%CYGWIN_ROOT%/home/%USERNAME%/%ANDROID_NDK_DIR%/sourcesに移します。

$ cd ~/%ANDROID_NDK_DIR%/sources

ちなみにカレントディレクトリを確認するには「pwd」コマンドを実行するとよいでしょう。
次にCygwin上で以下のコマンドを実行します。

$ git clone git://github.com/glacefullife/Hamster-DB-for-Android

すると、何かメッセージが出てソースコードのダウンロード(リポジトリのclone)が始まります。
$ git clone git://github.com/glacefullife/Hamster-DB-for-Android
Cloning into Hamster-DB-for-Android...
remote: Counting objects: 463, done.
remote: Compressing objects: 100% (306/306), done.
Receiving objects:  54% (251/463), 1.11 MiB | 72 KiB/s
もしここでPermission denied (publickey).とかのメッセージが出で終了しているようでしたら、コマンドの一部が誤っている可能性があります。今一度見直してリトライしてください。

cloneが終わると、以下のようなメッセージが出てコマンド入力に復帰します。
Receiving objects: 100% (463/463), 1.59 MiB | 40 KiB/s, done.
Resolving deltas: 100% (151/151), done.

foosage@yourpc ~/android-ndk-r5b/sources
$

おめでとうございます。ソースコードの取得は終わりました。
%CYGWIN_ROOT%/home/%USERNAME%/%ANDROID_NDK_DIR%/sources/Hamster-DB-for-Androidのディレクトリがあることを確認してください。

(3)ビルド(ndk-build)!
続けて、以下のコマンドを実行してカレントディレクトリを「%CYGWIN_ROOT%/home/%USERNAME%/%ANDROID_NDK_DIR%/sources/Hamster-DB-for-Android」に移動します。

$ cd ./Hamster-DB-for-Android

これからビルドしますが、カレントディレクトリが重要な意味を持っていますので、上記のcdは省略せずにちゃんとやりましょうw
で、以下のコマンドを実行してビルドを開始します!
つまり、カレントディレクトリを%CYGWIN_ROOT%/home/%USERNAME%/%ANDROID_NDK_DIR%/sources/Hamster-DB-for-Androidに維持したまま、 %CYGWIN_ROOT%/home/%USERNAME%/%ANDROID_NDK_DIR%/ndk-buildを実行します。

$ ../../ndk-build

ビルドが開始されます。Cygwin画面にいっぱい警告メッセージが出ますが、「printfなどで警告が出るため」ということらしいので気にせず待ちましょう。
ビルドが完了すると、以下のメッセージが表示されるとともに、Cygwinがコマンド入力待ち状態になります。


$ ../../ndk-build
Compile thumb  : hamsterdb-java <= log.c
Compile thumb  : hamsterdb-java <= blob.c
Compile thumb  : hamsterdb-java <= btree.c
~~~中略~~~
SharedLibrary  : libhamsterdb-java.so
Install        : libhamsterdb-java.so => libs/armeabi-v7a/libhamsterdb-java.so

foosage@yourpc ~/android-ndk-r5b/sources/Hamster-DB-for-Android
$


Androidに取り込むためのsoファイルができたかどうか早速確認しましょう。
上記メッセージにも表示されているように、Androidに取り込むsoファイルは以下の場所に生成されています。
[ディレクトリ]	%CYGWIN_ROOT%/home/%USERNAME%/%ANDROID_NDK_DIR%/sources/Hamster-DB-for-Android/libs/armeabi
[ファイル名]	libhamsterdb-java.so

ありましたか?さあ、次はAndroidで動かします!


3.サンプルアプリ内で動かしてみる


(1)新規にAndroidプロジェクトを作成して、本家のJavaライブラリととサンプルコードを取り込む
Eclipseを起動し、新規にAndroidプロジェクトを作りましょう。
なお、便宜上、新規作成したAndoridプロジェクトのルートフォルダのフルパスを"%ANDROID_PROJECT_ROOT%"と表記します。
たとえば、あなたのEclipseのワークスペースがC:\android\eclipse\workspaceであり、 新規プロジェクト名を「HelloHamsterDB」とした場合の%ANDROID_PROJECT_ROOT%は「C:\android\eclipse\workspace\HelloHamsterDB」になります。
ちなみに、新規Androidプロジェクトの際に指定するターゲットAPIレベルはandroid-7(2.1 update1)にしてみました(より低いAPIレベルや高いAPIレベルでの動作は未検証です)。
ついでにAcitivtyとかも適当な名前で作っておきましょう。

で、プロジェクトが作成されたら、%ANDROID_PROJECT_ROOT%直下にlibsフォルダをつくり、さらにlibsフォルダの中にarmeabiフォルダを作成してください。
armeabiフォルダまでのフルパスは「%ANDROID_PROJECT_ROOT%\libs\armeabi」になります。

次に本家Javaライブラリを参照設定しますが、いくつかの方法があります。以下は私が行った手順です。
1) 本家からダウンロードしてきた「hamsterdb-java-0.0.3.tar.gz」を解凍し、その中の java フォルダにあるhamsterdb-0.0.3.jarを取り出します。
2) hamsterdb-0.0.3.jarを「%ANDROID_PROJECT_ROOT%\libs」フォルダ内に配置します。(エクスプローラーでコピペ/移動)
3) プロジェクトのプロパティから「javaのビルドパス」の項目を表示し、「ライブラリ」タブの「Jar追加」で、1)のhamsterdb-0.0.3.jarを参照設定します。

さらに、本家から同様に落としてきたサンプルコード(Db1.java)を、プロジェクト新規作成時についでに作ったActivityと同じパッケージ内にコピペします。
(もちろんパッケージを別に作ってそこにおいてもよいです)。
でも、この時点ではまだDb1.javaはエラーになっています。これはDb1.javaにpackage名が指定されていないからです。
Db1.javaの先頭行に package "Androidプロジェクトのpackage名"; を挿入して再保存して下さい。
たとえば、このAndroidプロジェクトのパッケージ名に"jp.hoge.foo.hamsterdbtest"を指定していたら「package jp.hoge.foo.hamsterdbtest;」のように。
するとエラーがなくなるはずです。次に進みましょう。

(2)Androidプロジェクト内にビルドでできたsoファイルを配置する
先ほどのビルドで「%CYGWIN_ROOT%/home/%USERNAME%/%ANDROID_NDK_ROOT%/sources/Hamster-DB-for-Android/libs/armeabi」に生成された 「libhamsterdb-java.so」を「%ANDROID_PROJECT_ROOT%\libs\armeabi」にコピペします。
もう動かせそう?いやいや、まだもう少し!

(3)System.loadLibraryを実装。Db1.javaをちょこっと修正。
とりあえず作ったhello androidを表示するだけのActivityのソースをEclipseで開きstatic初期化子のブロックを挿入します。
さらにそのブロック内にSystem.loadLibrary("hamsterdb-java");を挿入します。
これで、Activityがクラスロードされる都度、soファイルを動的に参照するようになります。
public class HelloJni extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
	}

    static
    {
        System.loadLibrary("hamsterdb-java");
    }
}
もう終わり?いや大事なこと忘れていますよ。Db1.javaを動かす実装をしなくちゃ。
ActivityのonCreate内(onStartでもどこでも)に、Db1.javaのrunメソッドを記述します。
throws節が定義されているのでtry-catchで囲んで適当に実装します。
public class HelloJni extends Activity
{
	private static final String TAG = "hamsterdb-java";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		Db1 db = new Db1();
		try
		{
			db.run();
		}
		catch (DatabaseException e)
		{
			Log.e(TAG, e.getMessage(), e);
		}
	}

    static
    {
        System.loadLibrary("hamsterdb-java");
    }
}
次にDb1.javaのソースを開いてください。
エントリーポイントとなるメソッド(public static void main(String args[]))が定義されていますが、実行時エラーになるため、このメソッドを削除します。
そして、hamsterdbの実体ファイルを示す"test.db"と記述している箇所をAndroidの環境に合うように修正します。
※test.dbのままだとI/Oエラーで落ちます。パーミッションがないところに作ろうとするんでしょうね。

とりあえず、sdcardにデータベースファイルを作成するようにしてみましょう。要は絶対パスでファイル生成場所を指定するイメージです。
2箇所 db.create("test.db") と書いてあるので、全部書き換えましょう。
public class Db1 {

    public static final int LOOP=10;

    public void run() 
            throws DatabaseException {
        byte[] key=new byte[5];
        byte[] record=new byte[5];
        Database db=new Database();

        /*
         * first, create a new database file
         */
        //db.create("test.db");	//このままだと落ちる

		//
		// 次のように変えてみる。sdcardの状態チェックはとりあえず無視しています(ちゃんとやりましょう)。
		// なお、AndroidManifest.xmlに以下のパーミッションを定義しておきます。
		// 
		//
		// 冗長なので各自適宜修正してください。
		//
		File dir = Environment.getExternalStorageDirectory();
        String dbPath = null;
        if(!dir.getPath().endsWith(File.separator))
        {
        	dbPath = dir.getPath() + File.separator;
        }
        else
        {
        	dbPath = dir.getPath();
        }
		db.create(dbPath+"test.db");

(4)さぁ動かそう
お疲れさまでした。やっと動かせますよ。
クラッシュした時の実機へのダメージが想定できない(まだよくわかってない)ので、エミュレータで動かすことにします。
自分の場合はAPILevel-8(Android 2.2)のエミュレータを使用しました。エミュレータを用意していない場合は動かす前に作っておきましょう。
で、デバッグモードで起動して........ささやき - いのり - えいしょう - ねんじろ!

04-09 02:22:34.983: DEBUG/dalvikvm(279): Trying to load lib /data/data/com.example.hellojni/lib/libhamsterdb-java.so 0x44eac098
04-09 02:22:35.023: DEBUG/dalvikvm(279): Added shared lib /data/data/com.example.hellojni/lib/libhamsterdb-java.so 0x44eac098
04-09 02:22:35.023: DEBUG/dalvikvm(279): No JNI_OnLoad found in /data/data/com.example.hellojni/lib/libhamsterdb-java.so 0x44eac098, skipping init
04-09 02:22:35.233: DEBUG/dalvikvm(279): Trying to load lib /data/data/com.example.hellojni/lib/libhamsterdb-java.so 0x44eac098
04-09 02:22:35.233: DEBUG/dalvikvm(279): Shared lib '/data/data/com.example.hellojni/lib/libhamsterdb-java.so' already loaded in same CL 0x44eac098
04-09 02:22:35.312: DEBUG/dalvikvm(279): Trying to load lib /data/data/com.example.hellojni/lib/libhamsterdb-java.so 0x44eac098
04-09 02:22:35.312: DEBUG/dalvikvm(279): Shared lib '/data/data/com.example.hellojni/lib/libhamsterdb-java.so' already loaded in same CL 0x44eac098
04-09 02:22:35.332: DEBUG/Db1(279): Success!
04-09 02:22:35.752: INFO/ActivityManager(59): Displayed activity com.example.hellojni/.HelloJni: 4647 ms (total 4647 ms)


"Success!"がlogcatに出力されましたか?
出たら(たぶん)正常稼働しました。おめでとうございます。

* * * * * * * * *

おつきあいありがとうございました。
手順メモは以上になります。質問されても答えられないので、申し訳ないですが自力で判断・解決してください。
それでは、楽しい公、いやハム、いやいやhamsterdbライフを!

スポンサーサイト

テーマ : ソフトウェア開発
ジャンル : コンピュータ

tag : Android 開発者向け hamsterdb

開発者向け話題~自前logクラスについて

どうも。連投中のDUMAPICです。
さて、今回はAndroid開発者向けの話題です。

開発者の皆さんは、Androidでのログ出力はどのような形で実装されているのでしょうか?
ちなみに私は、APIで用意されているlogのラッパークラスを用意してログ出力制御を行っています。

なんでラッパークラスなんて作るの?と思われるかもしれませんが、一応自分のアプリで散々実績?を積んだソースコードを晒します。

このクラスを用意した理由は大きく2つあります。

(1) 開発中はログをだらだらと出力したいけどリリース時は出力させたくない。しかもデバッグだのリリースだのと一々ログをコメントアウトとかしたくない。
(2) logcatのフィルタを使いたいのでタグは統一化したいけど、やっぱりどのクラスでログ出力したかも把握したい。

ということで、オレオレクラスを作ったわけです。

<使い方>
・ログの出力有無は、static変数のIS_LOGGABLEで制御します。
あえてfinalにしていないのは、デバッグモード/リリースモード判定による真偽値を注入したいけど、モード取得にはContextが必要なため、クラス初期化子による初期化ができないと判断したためです。
ちなみにこれらのモード判定はAndroidManifest.xmlのandroid:debuggableの値をみて行います。具体的なやり方は他の方が公開していますので割愛しますw

・タグはstatic変数のTAG_NAMEに設定します。未設定の場合、ログ出力したクラス名をタグとして用います。 設定した場合は、ログ本文の冒頭に出力したクラス名を出力します。

<コーディング例>
Trace.TAG_NAME = "HogeHoge";
Trace.IS_LOGGABLE = DeployUtils.isDebuggable(this.getBaseContext());

Trace.log(Trace.Level.DEBUG, "[START] onCreate()");

とかかな。

もっといい方法あるよとか、おかしくね?とかありましたらコメントください。
ちなみにコーディングスタイルがちょっと変則的ですがそこはご愛嬌wでお願いします。

ではでは。

続きを読む

テーマ : ソフトウェア開発
ジャンル : コンピュータ

tag : Android 開発者向け

あけましておめでとうございます

皆様、ご無沙汰しています。DUMAPICです。

絶賛放置中のブログで申し訳ないですが、改めて新年のごあいさつです。
前回記事からだいぶ時間が経過していますが、アプリのほうはいろいろとバージョンアップしました。

履歴消しゴム
一括削除機能を追加しています(海外では"bomb"がウケたようです)。あと、Gmail検索履歴の削除機能も追加しました。
ちなみに現在、以下の課題に取り組んでいます。
・標準ブラウザでのGoogle検索履歴削除
・サードパーティアプリの各種履歴削除(何かはお楽しみw)

他にもご要望をいただいており、順次取り組んでいく予定です。

寝るときHOME
「知らない間にアプリが止まっている」という現象回避のため、フォアグラウンドサービス化しました。
なので、タスクキルしてもゾンビのように復活する形になっています。
また、通知領域へのメッセージ表示を廃止しました(強制終了エラーが発生していたため)。
なお、現在は以下の構想を考えています。
・スリープ復帰直後の表示アプリをHOMEアプリ限定ではなく、他のアプリも可能とする。

HelloStatusBar
IS01への対応を行いました。まぁ微妙な対応ですけど。
なお、現在は以下の構想を考えています。発展性はあまりないんですけどねw
・ウィジェット化

AltTabApps
検索ボタンからの起動をオプション化しました。
現在、IS03でのエラーが多発しており、実質IS03では使えない状態が続いています。
原因が特定できないため、対策は遅々として進んでいません。申し訳ないです。
あと、ちょっとつくりを変える予定でいます。使い勝手を維持しつつ、UI的な部分と機能的な部分のリフレッシュを予定しています。

ShareBridge
おっと、これは紹介していなかったかもですね。
とりあえず、Ustreamリンクから直接専用アプリを表示するアプリとしておきましょう。他にもゴテゴテついていますが。
自分が認識する限り、Ustreamリンクから直接専用アプリを起動できるのはShareBridgeだけだと思います。
困っている方はマーケットからどうぞ~。

診断メーカーとなく
おっと、これはアプデしていなかったかも。
いわゆるツイッター診断メーカーをするための非公式アプリです。SimejiマッシュルームとかTwicca BETAのプラグインに対応しています。

■マーケット検索履歴削除
履歴消しゴムからずばりアプリ名そのものの機能を切り出したものです。
いつの間にか10万ダウンロード行っていたため、Android 1.5のみ実行可能という制限を撤廃しました。
とりあえず、1.5以上の全バージョンで使えるはずです。たぶんw


こんな感じで色々とアプデしていました。
つぶやき界隈でフォローくださっている方にはおなじみかもしれませんが、一応、ほら、宣伝もしなくちゃいけないのでこの場を借りてご報告します。

それでは、今年もよろしくお願いします!




テーマ : ソフトウェア開発
ジャンル : コンピュータ

tag : Android 履歴消しゴム AltTabApps 寝るときHOME HelloStatusBar 診断メーカーとなく ShareBridge

Androidマーケットに表示されない現象

皆さんこんばんは、DUMAPICです。

先のGoogleI/OでFroyo(OS2.2)の発表があり、すぐにNexus Oneへのアップデート配信がおこなわれた模様ですが、アップグレードすると、protected指定のアプリがマーケットに表示されなくなる、という現象が発生しているようです。

現在いろいろな情報が錯綜しており、私も原因をつかみかねていますが、一応アプリの対応予定を記しておきます。
(当然この方針は将来変わることがありますのであまり期待しないでください。)

履歴消しゴム … 一時的な野良apkファイルの配布を計画中。ただしかなり消極的です。現在も考え中。
HelloStatusBar … 一時的にマーケットでのprotectedを解除して公開しています。
OperaBridge … 一時的にマーケットでのprotectedを解除して公開しています。
AltTabApps … 対応予定なし。
・MarketHistoryEraser … 対応予定なし(そもそも1.5onlyなので)
寝るときHOME … 対応予定なし (設定上不要)

恐らくGoogle側からアナウンスがあるか、突然現象が解消した、なんてことがあると思いますが、取り急ぎご報告いたします。

<2010/05/30追記>
DesireとN1でのマーケット不具合理由は別にしても、なんか収束したみたいですね。
自分は上記端末を持っていないのでこの目で確かめてはいないですが、同じprotectedとしている別作者のアプリもマーケットに表示されるようになっているみたいです。N1のFroyoも結局はテスト版だったということもあり、今すぐの対応を行うのはヤメました。私の方もいろいろ対応策を考えていたのですが、結局は無駄足だったようです。
申し訳ないですが、ご了承のほどよろしくお願いします。

テーマ : ソフトウェア開発
ジャンル : コンピュータ

tag : Android 履歴消しゴム 寝るときHOME AltTabApps HelloStatusBar OperaBridge

OperaBridge、HelloStatusBarをアップデート

こんばんは、DUMAPICです。

日本は今、連休中ですね~~。皆さん、お休みは取れたのでしょうか?
私?もちろん・・・ゴホンw

で、表題のとおりOperaBridgeとHelloStatusBarをアップデートしましたが、今回はかな~り微妙なアプデです。
ようするに、アプデしてもしなくてもいいような感じ。
一応、アプデ内容を書いておきます。

■OperaBridge
共有インテントに対応しました。
標準ブラウザの「ページを共有」とか、TwitterクライアントのShareを選択したとき、OperaBridgeが選択候補に表示されるようになります。ここでOperaBridgeを選択するとそのURLをOperaで開く、というものです。
用途は限られていると思いますが、Operaで開きなおすときとかに使えそうです。
あとは、インテントフィルタを標準ブラウザとほぼ同等のものに変更しました。
(専門用語ですみません。ようはOperaBridgeがインテントを感知できる範囲が広がったようなものです)

※ちなみに別のサイトでもとりあげていただきました(海外)。
http://www.androidspin.com/2010/04/28/app-review-operabridge/

■HelloStatusBar
Android OS 1.5に対応するように変更しました。
それだけ。機能的な変更はありません。
(中身は大掃除したんですけどね)

ではでは。

テーマ : ソフトウェア開発
ジャンル : コンピュータ

プロフィール

DUMAPIC

Author:DUMAPIC
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。