会社でglibcのarena(malloc)の実装を調査してみた。
malloc実行前にmallopt関数や環境変数を設定して実行することでmallocの内部処理が一部変更になる。
そもそも、glibcのソースをよんでみて思ったことは通常の開発であれば初期化しない変数のすぐ下
でif文でcheckしている部分はコードレビュー時でアウトになります。

・MALLOC_CHECKを有効にして実行
1:エラーメッセージを表示
2:エラーがあったらabortさせる。
# MALLOC_CHECK_=1 /a.out


・mallocのオプションやイメージで参考になったサイト
http://sssslide.com/www.slideshare.net/kosaki55tea/glibc-malloc
http://siddhesh.in/journal/2010/11/26/back-to-the-os-class-memory-allocation/
http://www.novell.com/support/kb/doc.php?id=3113982
http://paparisa.unpatti.ac.id/linux_journal_archive_1994_2007/LJ/087/4681.html

・glibcの本家サイト
http://www.gnu.org/software/libc/
androidでわからないことを調査していたらQiitaという日本の情報共有サービスがあるのを
発見した。itproやスラドが好きな人はここの記述も参考にするといいかも。
登録したが、誤ってユーザ名にメールアドレスを設定してしまって、変更できなかったので
入会してすぐに退会してしまった。いたずらだと思われると困るので日をあけて登録予定。
技術系のメモがわりにブログやホームページを作成している人にとって、giocityみたいに急に
サーバ自体がなくなることもあるので、いろいろ分散させておくと便利。


http://qiita.com/
技術情報共有サービス
githubのユーザでログイン可能

MariaDB
本家サイト:https://mariadb.org/
ライセンス:GPL
MariaDB 10.0.0 Alpha 2012-11-12

mysqlの開発者がベースとなって立ち上げたプロジェクト。oracle傘下にあるプロジェクトは
oracle離れしやすい傾向にあるみたいです。まあoracleのやり方はいままでのテストケースを隠したり
changelogを隠したり、open系ソースでの開発者にとっては信じられないやり方がまかり通っているようです。
linuxに同梱されているものがmysqlからMariaDBになる日がくるかもしれないです。

http://jp.techcrunch.com/archives/20120818oracle-makes-more-moves-to-kill-open-source-mysql/(日本語)
http://techcrunch.com/2012/08/18/oracle-makes-more-moves-to-kill-open-source-mysql/ (英語)
androidであまり使われていないaaptコマンドについて

aaptとやれば使い方もわかるけどとりあえず使いそうなのは
dオプションだけかも。


1.apkファイルの内容表示
# appt list xxxx.apk

2.apkファイルのdump(label user permission表示)
# appt d badging xxx.apk

3.apkファイルのdump(permisson表示)
# appt d permissions xxx.apk

4.apkファイルのdump(resouce表示)
# appt d resrouces xxx.apk

5.apkファイルのdump(ldpi-v4,mdip-v4,hdip-v4としか表示されない
# appt d configurations xxx.apk

6.apkファイル内にあるxml情報表示(label,activity,permission等)
# appt d xmltree xxx.apk AndroidManifest.xml

7.apkファイルにあるxml情報表示(stringとid)
# appt d xmlstrings xx.apk AndroidManifest.xml



oraclie linuxではカーネル関数にsystamtapでprobeできない。モジュール関数にはprobe可能


理由は以下の二つのビルドIDが違うため
#eu-readelf -n /usr/lib/debug/lib/modules/xxxxxxxx/vmlnux
#eu-readelf /boot/vmlinux-xxxxx

解決方法
ビルドIDを無視するoptionを指定してsystemtapを十王する
# stap xxx.stp -DSTP_NO_BUILDID_CHECK -vg
カーネルソースをビルドするときRHELクローン系のLinuxでは以下
のコマンドを実行しておくと簡単にソース参照できるようになる


cscopeようのファイル作成
# make cscope

ctag用ファイル作成
# make tags

etag(emacsから)用ファイル作成
# make TAGS
cflowとglobal tag systemを使って
web上からソースを簡単に参照できるようにする


c,c++の関数コールを作成するソフトウェア:cflow
サイト:http://www.gnu.org/software/cflow/

c,c++,javaのソースをweb上で参照できるソフトウェア
サイト:http://www.gnu.org/software/global/


上記2つの連記方法

1.ソースのトップで
# gtags -v
2.関数コールtree作成
# cflow --tree --format=posix `global -P` >cflow.out
3.関数逆コールtree作成
# cflow --tree --format=posix --revers `global -P>cflow-r.out
4.cflowとglobal tag systemの連携
# htagas safFn --cflow=cflow.out --calee-tree=cflow-r.out


cflowが失敗するときはfindコマンドで*cや*cppのみにする
広告切り替えサービスとしてAdStirとAdWhilがあるが
Admobの方にAdWhilの機能が盛り込まれたためAdWhilは今後サポートされないようです。
なので広告切り替えを行う場合はAdmobおよびAdstirのどちらかを選択した方が
よさそうです。


https://support.google.com/admob/bin/answer.py?hl=ja&answer=2423687
より抜粋

AdWhirl からの切り替えについて
必須ではありませんが、今後は AdWhirl から AdMob メディエーションに切り替えていただくことを強くおすすめします。AdMob メディエーションでは、レポート、ターゲット設定、統合に関する機能が強化されています。AdWhirl で提供されるすべてのサービスが利用できるうえ、さらに高度な機能を備えています。また、この先新しい機能が追加されるのは、AdMob メディエーションのみとなります。

一方、AdWhirl も引き続きご利用いただけますが、今後このサービスのアップデートやサポート サービスは行われなくなります。Google では、今後も広告ネットワーク メディエーションのサービスを継続的に改善していく予定ですので、この 2 つのサービスの差は一層増していくことが予想されます。
android-support-v4.jarをビルドパスに追加して、署名つきapkを作成するとエラーに
なってapkが作成できない。
android-support-v4.jar関連のクラスで警告やエラーがたくさんでる。
以下エラーの抜粋



android.support.v4.accessibilityservice.AccessibilityServiceInfoCompatIcs: can't find referenced method 'boolean getCanRetrieveWindowContent()' in class android.accessibilityservice.AccessibilityServiceInfo
android.support.v4.app.NotificationCompatHoneycomb: can't find referenced class android.app.Notification$Builder
android.support.v4.app.ShareCompatICS: can't find referenced method 'android.view.ActionProvider getActionProvider()' in class android.view.MenuItem
android.support.v4.app.NotificationCompatHoneycomb: can't find referenced class android.app.Notification$Builder
警告: there were 166 unresolved references to classes or interfaces.
You may need to specify additional library jars (using '-libraryjars').


[対策方法]
prograd.cfgに以下を追加すれば署名つきのapkが作成される。stackoverflowとかに似たような
質問がいくつも投稿されている。「You may need to specify additional library jars (using '-libraryjars').」のメッセージは関係ないので注意する。

-dontwarn **CompatHoneycomb
-dontwarn android.support.v4.**
-keep class android.support.v4.** { *; }


とりあえず、APIの解説をみるよりそのAPIを使ったprojectなり、サンプルソース
をみた方が理解がはやいので、海外サイトで参考になりサイト。

・カテゴリ別にわけられているのでわかりやすい(自分で実装する必要あり)
http://www.java2s.com/Code/Android/CatalogAndroid.htm


・projectごとダウンロードできるがユーザ登録が必要
http://www.android10.org/




web上で進捗管理およびsubversion/gitでソース管理、ファイル共有が行えるサイトを
発見したので紹介。
個人で使う場合は、プロジェクト数1,subversion/git,ファイル共有100MBで
あれば無料で使える。チームで開発する場合はベーシックプラン以上で有料になるので注意が必要。
日本のサイトで目のつけどころはいいけど、個人でbitbucket + DropBox(無料)を利用している人にとってはほぼ同等の事ができるので、もうすこしサービスがほしいところ。
サーバの動作環境はRHEL5,6,CentOS4,6,tomcat,postgresql,mysqlなのでほぼLinux環境で環境を整えている
みたいです。


公式サイト
http://www.backlog.jp/
Visual Studio 2012 Expressは以下のサイトからダウンロードできる
ようになったみたいです。
windows 8が要件になっているため、現段階ではRC版をマシンにインストールしないとつかえません。
windows 8の発売日は2012/10/26

また、システム要件だけみてみると過去のVSとは比較にならない程スペックが必要
みたいです。Visual Studio 6.0の頃はここまで必要ではなかったのですが、これも時代の流れ
ですね。



[開発言語]
HTML5、JavaScript、C++、C#、または Visual Basic

[システム要件]

サポートされているオペレーティング システム: Windows 8
サポートされているアーキテクチャ: 32 ビット (x86) または 64 ビット (x64)
ハードウェア要件:
1.6 GHz 以上のプロセッサ
1 GB の RAM (バーチャル マシンで実行する場合は 1.5 GB)
5.0 GB の空き容量のあるハード ディスク
5400 RPM ハード ドライブ
1024 x 768 以上の解像度の DirectX 9 対応ビデオ カード


http://msdn.microsoft.com/ja-jp/windows/apps/hh852659.aspx

googleが発売するタブレット端末Nexsus7(android 4.1)が発売されました。
お値段は19800円で、いま購入すれば2000円分のgoogleで利用できるtichketが購入可能らしいです。
ipadと比較するとほぼ半額で購入できる事を考えると、ipadのライバル機種となるのはさほど時間
がかからなさそうです。

androidのmailingリストを眺めていたら、kernelのクロスリファレンスができるサイト情報
があったので、忘れないためにも情報を残しておく。
kenrelソースまで確認してメソッドや実装を調べる場合、本家の場合だといまいちなので
OpenGrokで作成されている以下サイトは本当にありがたい。


ソースブラウザとして
LXR,global,OpenGrokがあるが、OpenGrokだけはつかったことが
なかったのでいい機会に覚えようと思う。

OpenGrokとLXR,globalの比較はOpenGrokがダウンロードできる以下のサイトに情報がある。
http://hub.opensolaris.org/bin/view/Project+opengrok/



本家
https://sites.google.com/site/devcollaboration/codesearch


・android3系がないが、メージャーとなっているヴァージョンは使えるので問題ない。
http://tools.oesf.biz/android-2.2_r1.1/
http://tools.oesf.biz/android-2.3_r1.0/
http://tools.oesf.biz/android-2.3.7_r1.0/
http://tools.oesf.biz/android-4.0.1_r1.0/
http://tools.oesf.biz/android-4.0.3_r1.0/
http://tools.oesf.biz/android-4.0.4_r1.0/
http://tools.oesf.biz/android-4.1.1_r1.0/
printf,fprintfに指定する文字列のまとめ


ssize_t%zd
size_t%zu
int_max_t%jd
intmax_t%ju
signed char%hhd
unsigned char%hhu
short int%%hd
unsigned short int%hu
int%d
unsigned int%u
long int%ld
unsigned long int%lu
long long int%lld
unsigned long long int%llu


linuxでは以下のinttype.hをincludeで
して__STDC_FORMAT_MACROSを定義しておけば
さらに以下の書式がつかえるようになる。マクロのため実際は上記と同等なものが定義されている
int32_t%PRId32
uint32_t%PRIu32
int64_t%PRId64
uint64_t%PRIu64


さらに以下の書式がつかえるようになる。

#include
#define __STDC_FORMAT_MACROS

int32_t %PRId32
uint32_t %PRIu32
int64_t %PRId64
uint64_t %PRIu64







・型の確認(glibcのtypes.h)




・マクロと指定できるformatの確認 glibcのinttypes.hの内容

Linux kernelソースをwebで確認

各バージョンのkernelソースを確認するには
以下のサイトを使用する。

Linux 2.6.11 and later 
をクリックして次のページのコンボボックスからソースを確認したいバージョンを選択する。

http://lxr.linux.no/
c#,javaとかにあるforeachと同等な動作をさせるc言語のマクロ





g++(gcc)のコンパイル時にdebug機能の有効、無効を切り替える。
コンパイル時に-Dオプションを指定する。

gcc -Dxxx
でコンパイルすると内部出来には
#define xxx
が定義されているとみなされる。




windows版のログマクロ
ログ用ヘッダLogutility.hとして定義してログを
出力したいファイルでincludesる



c言語のログマクロ
フラグによって標準出力かfileに記録するか選択できる。



[oracleのSIDを変更するときは以下のファイルを編集]

/etc/oratab
/home/usr/.bash_profile
/homeusr/.bashrc



oracleはUniversal installでインストールに失敗するとwindows版,linux版どちらで再度インストールを
行うとインストール途中でエラーになる。

oracle 11g(linux版)で手動で消去するファイル一覧



cppでpcファイルを作成する場合はホスト変数はmainの前て定義しなければ
コンパイルエラーになるので使用する変数はすべてmainの前で宣言しておく。
下記ソースでは
EXEC SQL CONNECT : oracle_current IN SYSDBA MODE;
の部分がエラーになります。




c言語でつくる場合は、ホスト変数を関数内で定義してもmainの前に記述しても
mainの前に定義してもOK。



oracle pro*c用(cpp)のMakefile




Oracle 11g pro*c用のMakefile


気づかないうちに雲野コアウィジェットが復活していた。
よかった、復活してやはり時計は必要だね。

androidのログクラス
android2.2,android4.0のHTC Desire(初代),HTC Jでテストしどちらも期待通りの動作。
使い方はAndroidManeifest.xmlに下記を追加(SDカードに保存しているため)





メインactivityのOnCreateで初期化

MYUtilityEx.init( this );
MYUtilityEx.SetDebugAble( true );

任意の関数で以下を実行すると/mnt/sdcard/test.logに日付、時間、java行数、メッセージを表示
MYUtilityEx.MY_LOG_FILE( "ATEST", "test.log", "write_test starttime" );






ソースのクロスリファイレンスを作成するツールとしてglobal tag systemをLXRがある。
apacheサーバを立てているとこれらを利用してソース解析が用意にできる。
LXR、global tag systemもどちらもapacheの公開ディレクトリの設定を変更して運用
する必要があるので設定方法の記述は省略。


global tag system
http://www.gnu.org/software/global/

LXR
http://sourceforge.net/projects/lxr/

LXRで作成されたlinux kernelソースのクロスリファレンス
http://lxr.oss.org.cn/



global tag systemの使い方

ソースブラウザにしたいターゲットソースがあるディレクトリで以下を実行
1.gtags -v
2.htags -safFn


cやjavaの混在環境(android)の場合は先にfindコマンドでファイルリストを作成しておく
1.find . type f -print >filelist
2.gtags -f >filelist
3.htags -safFn


・cflow(関数コールツリー)との連携

cflow
http://www.gnu.org/software/cflow/


1.gtags -v
2.cflow --tree --format=posix `global -P` > cflow.out
3.cflow --tree --format=posix --reverse `global -PP >cflow-r.out
4.htags -safFn --cflow=cflow.out --callee-tree=cflow-r.out
bashの同じスクリプトを多重で実行できないようにするためにはflockを使用する。

ロック開放をまたない
flock -n 9

ロック開放を待つ場合
flock 9

ロック解除
flock -u


liuxのauditの設定方法

signal 15(term),signal(kill)を送信したプログラムとその相手をログに記録するための設定

audit.rulesに以下を追記
# vi /etc/audit/audit.rules

-a exit,always -F arch=b64,-F al=15 -S kill -k KILL_TERM
-a exit,always -F arch=b32,-F al=15 -S kill -k KILL_TERM
-a exit,always -F arch=b64,-F al=9 -S kill -k KILL_KILL
-a exit,always -F arch=b32,-F al=9 -S kill -k KILL_KILL


設定を変更したあと
#service audit restart


audit動作確認はauserachでキワード(kオプション)を利用。
#kill xxx (消してもいい自作プログラム)
#auserach -k KILL_TERM
bashのソースがそれほど多くなければ,-xオプションをしていして変数やログを確認する。
ソースが長い場合や、いろいろなbashを内部でincludeしている場合はbashdbを利用する。
またbashdbは使用している bashにあったものを利用する。
また、使用shellに合わせてbashdb,zshdb,kshdbがある。

shellデバッガ
http://sourceforge.net/projects/bashdb/files/


bashのソースが短い場合の処理の流れを確認んする場合
# sh -x bash_scriptnameで




http://sourceforge.net/projects/bashdb/files/bashdb/


bashdbの基本コマンド

変数の表示
bashdb>print $変数名

配列データを全て表示
bashdb>print ${変数名[@]}

変数を全て表示
bashdb>info variable

関数を全て表示
bashdb>info functions

行数表示
bashdb>info line

デバッグしているファイル
bashdb>info files

ソース表示
bashdb>list

SIGTERMを送信
bashdb>signal 15

カーソルがある処理を飛ばす
bashdb>skip

前方検索
bashdb>search xxx


後方検索
bashdb>reverse xxx

変数のwatch
bashdb>watch xxx

backtraceを表示
bashdb>backtrace

bashをeditする
bashdb>edit



















linuxでsar -Aコマンドのなかからcontext switchの行だけ取り出す
複数の項目がなければ、targetの値を変更することで応用かの受




5/24の判決ではandroidのjavaはoracleのjavaの特許を侵害していないと判断されました。
2010年にoracleがサンマイクロシステムズを買収してからの、裁判だったので非常に長い期間oracleとgoogleは
争っていたことになります。そもそもoracleはmysql,openoffice,java等の権利を取得しているので
主要な技術を掌握していることになります。
買収した技術については現在(2012/6)では以下のようになっています。



openofficeの場合
オリジナルメンバがLiberOffce開発に着手 ->oracleがopenofficeをapache財団に寄贈



javaの場合
googleのandroidのjavaにたいして訴訟をおこすがみとめられず。






とりあえず現在2012/5月時点でメジャーとなっているGUIのソース管理ツール



1.TurtoiseSVN
本家サイト:http://tortoisesvn.net/


2.TurtoiseGit
本家サイト:https://code.google.com/p/tortoisegit/


3.TurtoiseHG (Mercurial)
http://tortoisehg.bitbucket.org/ja/




google code,git hub,bitbucketからソースをダウンロロードするため、上記3つのソフトはインストールしておく。
実際に自分で作成したプロジェクトのソース管理をしたいときはソース公開の義務がないbitbucketを利用するのがよさそうです。


bitbucketのサイト
https://bitbucket.org/

oralceとgoogleがjavaについて裁判ざたになっていたが,oracle側の出張を
一部認めたようです。


米Googleのモバイルプラットフォーム「Android」がJavaの知的所有権を侵害しているとして米Oracleが起こしている訴訟で、サンフランシスコ北部連邦地方裁判所の陪審は現地時間2012年5月7日、Oracleの主張を一部認める判断を下した。


http://itpro.nikkeibp.co.jp/article/NEWS/20120508/394981/(より抜粋)



sunがoracleに買収されたときからした嫌な予感がしましたが、javaは本来オープンソースであったものが、大企業に買収されるとライセンスの締結を
せまられたり、裁判を起こすための材料として使われたりして、買収された企業が儲かるための材料とされるのは残念です。
androidの開発者も自分のアプリが作成しても、oracleがjavaのライセンスや権利を出張した場合、かなり不利な立場にたたされそうな予感がします。


http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
のサイトを見ると、javaの利用頻度は第2位であり、おそらくandroidのjavaも含まれていると思われます。


oracleは以前、OpenOfficeを収益にしようとして失敗しています。
OpenOffice買収 -> OpenOfficeの開発メンバのほとんどがLiberOffice開発に切り替え - > oracleがOpenOfficeをApache Software Foundationに寄贈 ->
Liber OfficeスタッフはApachにあるOpenOfficeをメンテするのではなく、Liber Officeの方に開発に専念



まだ、裁判を続くとおもいますが、この裁判の結果によってがandroid技術者やjavaの技術者が不利益が出ないような判決になってもらいたいと思います。




時刻表示のために使ってる左のキャラ(雲野コア)のキャラクターガイドライン
は以下のページを参照。
http://www.cloudcore.jp/vps/kumonocoa2012/license/

エイプリルフールのネタキャラで終わらせないところが
日本らしく、東京地方裁判所を第一審にしているあたり、パクリキャラ等がでること
にたいしても事前に対策をとっている模様。


2012/7/7 雲野 コア ガジェット表示されず。

本家ページにも表示されていないので、雲野コアさんは家出中みたい・・・

本家ページには「4月1日がすぎても「雲野コア」があたなのサイトからいなくなることはありません。たぶん。」とあるので方向転換したのか、サーバのエラーのどちらかでしょうけどエイプリルフールのネタキャラ
ガジェットに対する問い合わせはむりかな?


考えられる原因
1.ガジェットはファーストサーバにあったので復旧できない。
2.エイプリルフールネタキャラだったため、方向転換
3.別ガジェット制作中
4.サーバのフォルダ構成変更
5.リンク変更


雲野 コア ガジェットのダウンロードページ
http://www.cloudcore.jp/vps/kumonocoa2012/blogparts/

用途別、目的別にモバイル開発環境を
えらぶと以下のようになる。

おそらくほとんどの人は、リバースエンジニアリング禁止や
クローズドソースにしたいと思われるので
GPL,LGPL以外のライセンス以外のツールを選択すると思います。


[目的]
1.有料ソフトをリリースするが、android marketに25ドル(初回のみ)、
appleに99ドル/1年(個人),windows phone(9800円/1年)以外のお金
は負担になる場合。

Nosync以外を選択する。
フリー版はGPLなのでソース公開義務があるため,有料版でリリース
してもソフトを購入したユーザから要求があった場合ソースを
提供する必要あり。クローズソースにしてもいいのは商用ライセンス
を購入した場合)


2.開発ツール、android sdk,xcodeもインストールせず、とりあえず
モバイル開発をさわってみたい。

appMobiのクラウド開発ツールを利用する。

3.ノベルゲームに特化していれば、ほかの機能はいらない
AirNovel (android,iphoneで動作可能)

4.一つ言語でiphone,androidに対応したい
EMO
app Mobi
phonegap
Nosync (クローズドソースにする場合は有料)
corona (androidマーケット、appleストアに登録する場合は199ドル/1年)



[言語別]

1.これからの開発はhtml5とjavascriptだと思っている方は
phongap
appMobi sdk
jQeury

2.rubyの開発経験があり、rubyで開発したいとおもっている方は
Rhodes

3.Squirrelの開発経験があり、Squirrelで開発したいとおもっている方は
EMO


4.android用のjava,iphoneのobect-cを学習したいと思っている方

xcodeで開発する。
eclipse (android sdk)で開発する。
e3roidのソースを参考にする。(学習用ソースとしては規模も大きくないのでおすすめです)


5.java,object-cは遅いと思っている方は
Nosync
開発ツール(android,iphone)のまとめ 2012/3/31

android,iphoneを開発するにあたっての開発言語、ライセンス、開発ツールについての調査しました。
ngcore(モバゲー)やunity(有名なゲームエンジン)など、公開マーケット
がかぎられているものは除外してあります。
調査して気づいたのは以外とjavascriptがまだ、現役で活躍している
ところです。また、android,iphoneを一つの言語で開発したい場合
一番選択肢があるのもjavascript(ngcoreを選択した場合も)だったりします。
また、android,iphoneで両方開発できるものはほとんどソースが
公開されてるという点が、面白い点です。
クローズドソースだとバグやおかしなコーディングな部分を気づかなくても
ソースを読める人が使うことで、バグフィックス、機能改善がすすめられ
結果としてデファクトスタンダードになる可能性があります。
過去のマイクロソフトとは逆の考えですね。
googleもweb向けやその他の用途向けに「go」,「Dart」
を公開したりしていますが、いまのとこおあまり受けいられていないようです。
現在の使用言語がどれくらい使われているかは以下のサイトを
しらべるとトレンドとなる言語がわかります。

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

1.java
2.c
3.c#
4.c++
5.objectiv-c
6.php
7.visial basic
8.javascript
9.python
10.perl

http://www.prime97.co.jp/blog/staff/2012/02/tiobe-programming-language-award-of-2011objective-c.html
をみるとobjective-cだけ徐々に伸びていますが、iphoneの存在が大きい
です。


・スマートフォンでつかえるエンジンのライセンスとURLのまとめ

1.moai
http://getmoai.com/moai/
対象:android
言語:lua
ライセンス: Royality-free

2.corona
http://www.anscamobile.com/corona/
http://www.japancoronagroup.jp/
対象:android and ios
言語;lua
ライセンス: 商用としてiphone/androidマーケットに登録するアプリにはライセンス1年が発生する。
cost: $99/1year, $199/1year
備考:日本のcommunityあり、android ABCとかに出展してたりする。

3,cocos2d android (iphone用のアプリも存在)
http://code.google.com/p/cocos2d-android/
対象:android
言語java?
ライセンス: 修正BSDライセンス

cocos2d for iPhone
http://www.cocos2d-iphone.org
対象:iPhone
言語object-c
ライセンス: LGPL http://code.google.com/p/cocos2d-iphone/wiki/FAQ
備考:cocos2dはこちらのiphone版がメイン。ライセンスがLGPLなので、作成した物件のソース公開義務は
ないがリバースエンジニアリングを禁止してはいけない。

4.cocos2d for iphone
http://www.cocos2d-iphone.org/
対象:ios
ライセンス:LGPL
5.papaya
http://papayamobile.com/developer/engine
対象:android
言語:python,actionscript
ライセンス: Completely free unlimited use.

6.kobold2d
http://www.kobold2d.com/display/KKSITE/Home
http://www.kobold2d.org/
対象:iOS,MAC OS
言語;?
ライセンス MITライセンス
備考:「Xcode 4.2 (iOS 5 beta) is not supported」とあるので最新のxcodeがつかえないのかな?

7.e3roid
http://code.google.com/p/e3roid/
対象:android
言語;java
ライセンス: 修正BSDライセンス

8.EMO
http://www.emo-framework.com/
対象:android and ios
言語:Squirrel (luaに似た言語)
ライセンス 修正BSDライセンス
備考:e3roidの作者と同一で日本製、ただしandroid 2.3以上が必要。
ただし、android 2.3で日本で発売されているのはGaraxyII,Xperia
しかないので実機debugしたい人はよ注意。

9.Rhodes
http://rhomobile.com/products/rhodes/
対象:android,ios,windowsphone
言語;ruby
ライセンス MITライセンス
備考:android 3系のsdkがインストールされていると、ビルドに失敗する。公式サイトでは新しいsdkを消してrhodesのビルドしてくれと回答があった。この回答もどうかなと思う。
android sdkの一部のsdkを消すのではなくrhodesのsdkを修正するべき。

10.phonegap
http://www.phonegap.com/
対象:ios,windows,symbian,OSX,WebOS
言語:html5,javascript
ライセンス:修正BSDライセンス,MITライセンス
備考:htmlなので速度を期待しないものの作成にむいてるかも。インストールがうまくいかなくてもphonecapを使用したい場合、はappMobiのクラウドサービスから開発することが可能。(ユーザー登録する必要あり)

11.AirNovel
http://famibee.web.fc2.com/intro/home.htm
対象:iphone,android
言語:adobe AIR
ライセンス:特に記述はないが、AirNovelで作成したものを売っても料金の支払いは発生しないと「よくある質問」に記載があります。
備考:こちらも日本人開発のビジュアルノベル向けエンジン。NScripter,吉里吉里2を参考にして開発しているらしい。

NScripter -> 「月姫」、「ひぐらしのなく頃に」で使用されていたノベルゲームエンジン。
吉里吉里 -> 「Fate staynight」 で使用されていたノベルゲームエンジン。

12.appMobi
http://www.appmobi.com
対象:android,ios,windowsphone、iOS (iPhone / iPad)、Android 2.1+
言語;HTML5,javascript
ライセンス ? (クラウドサービスを利用しない、かぎり作成したものの著作権は開発者がもつ
備考:chromeに開発ツールをいれて、開発する。エミュレータ(iphone,android,ipad)が
サーバ上に存在するため、xcode,android sdkをインストールせずとも
開発できる。また、appMobiがMIT X11ライセンスで以下のライブラリを
オープンソースで提供してくれている。

1.open canvas (高速に描画できるcanvas)
2.mobiUs
3.appMobi JavaScript Bridge API
4.jqMobi (jQeruyと同様の文法かつjQeruyより高速)



13.enchant.js
http://enchantjs.com/ja/
対象: IE 9.0+、Chrome、Safari、Firefox
言語: MIT or GPL dual license
ライセンス:MIT or GPL dual license
備考:本家サイト以外にはあまり情報がないが週間アスキーとかで紹介されていた。


14.mosync
http://www.mosync.com
対象: android,iOS,BlackBerry,windows mobile
言語: HTML5,c/c++
ライセンス:GPL v2, commercial license
http://www.mosync.com/mosync-dual-licence-model
備考:サポートを受けたい場合はbasic pro,Gold proのライセンス
購入をする必要あり、またComminity版を使う場合はソース公開義務
があるので注意すること。



20.Sencha Touch 2
http://www.extjs.co.jp/
http://www.sencha.com/products/touch
対象: android,iOS
言語: HTML5,
ライセンス:GPL v3, commercial license
http://www.sencha.com/products/touch/license/
http://www.extjs.co.jp/products/touch/license.php

備考:ソースを公開したくない場合は商用ライセンスを
選択する必要がある。Senchaは日本の煎茶をイメージ
しているらしいです。
(jQeury Mobile,JQTouch,Raphael)



21.Titanium Mobile SDK
http://www.appcelerator.com/products/titanium-mobile-application-development/
対象: android,iPhone,iPad
言語: JavaScript
ライセンス:Apache 2 license
備考:CoffeeScript、Titanium StudioというIDE版があり、開発効率もよさそうです。
Titanium StudioからTitanium Mobile SDKをアップデート可能
TitaniumのAPIは以下のURLを参照
http://developer.appcelerator.com/apidoc/mobile/


22.QuickTiGame2d
http://code.google.com/p/quicktigame2d/
対象: android,iPhone,iPad
言語: JavaScript
ライセンス:修正BSD
備考:Titanium Mobile で動くゲームエンジンモジュールで
Titanium Mobile SDK 1.8.0.1 以上が必要。
ちなみに開発者はe3roid,EMOを開発している日本人のinfosiaさん。

phonegapを開発している会社がしらない間にadobeに買収されていた。
iphoneでflashが蹴られ、2011年11月9日にflashの開発の終了を発表していたので
モバイル端末に進むための、phongapを買収した模様。
flashといえば、テレホーダイ時代やADSL時代の時(当時はflasの特許を持っていたのはhmacromedia社)のとき,num10000,赤い部屋など
プロではない人が作成した映像やギミック映像でいろいろ楽しませてもらえました。5分程度の短編映像の中には感動するストーリー
音楽、ギミック等がありました。マルチプラットフォームに対応しかつモバイルにも、動作しないと企業として生き残れない時代に
なってきたのかなと思いました。そのためandroid,iphone,その他デバイスに対応しているエンジンを調査してみました。
とりあえず,2011/2月時点で以下の3つのエンジンはマルチプラットフォームと紹介ページには記載されています。


1.EMO
2.phonegap
3.MoSync
4.wizapply

About