python hackathon 2010. 07. 10
DESCRIPTION
There are so many .pys in Froyo.TRANSCRIPT
Python はあなたのAndroidライフ
を応援します
2010/7/10
えがわ たかし
ぱいそん はっかそん 2010. 7
今日言いたいこと
今日言いたいこと
あなたの Python は、
今日言いたいこと
あなたの Python は、
Android のいろいろなところで
使われています。
t_eggとは
じこしょうかいえがわ たかし/egg/ @t_egg
Pythonでごはんを食べてたこともあります
Androidは、たしなむ程度ですIMoNiというアプリを作ってます
IMoNiとは非公式
iモードメールクライアントです。
@docomo.ne.jpのメールを見たり、メールを送信したり
できます
23万5000ダウンロード21万アクティブ (89%) 七夕の日 現在
ダウンロード数とか
23万5000ダウンロード21万アクティブ (89%) 2010. 7. 7現在
日経産業新聞 2010.06. 29
ダウンロード数とか
あなたのAndroidライフを応援するPython
11
grandma:̃ egap$ cd froyo grandma:froyo egap$ find . -name "*.py" -print ¦ wc -l
12
grandma:̃ egap$ cd froyo grandma:froyo egap$ find . -name "*.py" -print ¦ wc -l 430
430 .py
grandma:froyo egap$ find . -print ¦ wc -l 119425
参考までに
全ファイル数
14
参考までに
行数(.c, .cpp, .h, .S, .java)grandma:froyo egap$ find . -name "*.[ch]" -o -name "*.cpp" ¦ xargs wc ¦ awk '{ sum += $1} END {print sum}' 20171722 grandma:froyo egap$ find . -name "*.S" ¦ xargs wc ¦awk '{ sum += $1} END {print sum}' 332372 grandma:froyo egap$ find . -name "*.java" ¦ xargs wc ¦awk '{ sum += $1} END {print sum}' 7602392
.pyなやつらin Froyo
》 development 系
▷ 約40ファイル
▷ AppEngine絡みのやつがいくつか› development/scripts/app_engine_server/*
▷ テスト系› development/testrunner
○ 各種テストランナーがpy
▷ Platform Development Kit› development/pdk
○ 詳しくは本家(http://pdk.android.com/online-pdk/guide/index.html)詳しいと評判
○ あまりpyとは関係ないが、唯一、Appengine上にPDKのページをアップするのがpy
》 development 系 (2)
▷ HTTP Clientのテスト用ツール axl
› development/tools/axl ○ 悪いWebサーバーとなって、HttpやTCPのクライアント側のテストが出来る(結構簡単に使える)
○ ツール全体がpyでできている
○ 例)遅く返しちゃう twisted使用
def sendPack(self, count): if count > 10: self.transport.loseConnection()
self.write("all work and no play makes jack a dull boy %s\n" % count) d = defer.Deferred() d.addCallback(self.sendPack) reactor.callLater(15, d.callback, count + 1)
》 development 系 (3)
▷ Sample Sync Adapter
› development/samples/SampleSyncAdapter/samplesyncadapter_server
› クラウドベースのサービスとAndroidのアプリ側とのデータの同期(ContentProviderなど)をこうすればいいよ!というシンプルなデモ○ クライアントはもちろんAndroid
○ サーバー側がpyで出来ている
☆ こんなかんじのサンプルページ
☆ http://samplesyncadapter.appspot.com/users
》 sdk/eclipse/scripts/collect_sources_for_sdk.py
▷ ソースをEclipseでも見れるようにディレクトリ構成を整えるツール
▷ もっといいのが
▷ http://code.google.com/p/browse-androidsdk-sources-in-eclipse/
▷ にあります。(.py と .rb)
》 sdk/eclipse/scripts/gen_icon.py
▷ アプリのアイコン(PNG)を作れるツール› Python Imaging Lib使用
○ Image, ImageDraw, ImageFont・・・
》 Repo
》 約35ファイル
》 ツールそのものがpyで
› Gitをラップしたユーティリティみたいなもので複数のgitレポジトリを束ねる
》 frameworks/base/tests/DumpRenderTree/assets
▷ レイアウトの階層やレイアウトの関係をテストするテスト用アプリ
▷ それらのテストを一括で走らせるpy
》 external/WebKit 系
▷ 約200ファイル(一番多い)けど、殆どがWebKitTools(http://trac.webkit.org/wiki/PythonGuidelines)のPython
› simplejson
› pywebsocket
› webkitpy などがいる
▷ cygwin-downloader.py とかもあるw
》 external/clearsilver 系
▷ 約25ファイル
▷ ClearSilver(http://www.clearsilver.net/ )の息のかかったもの
》 external/qmenu 系
▷ 5ファイル
▷ エミュレータ系
▷ Skin作ったり、文字マップ作ったりするpy
》 external/sonivox 系
▷ JetCreatorのものばかり
▷ JetCreatorとは、MIDIをゴニョれるやつ
▷ ちなみにhidecheckさんの日本語化docあり› http://hidecheck.web.fc2.com/JetCreator/
》 external/blktrace 系
▷ 2ファイル
▷ bttプロットするユーティリティ
》 external/e2fsprogs 系
▷ Ext2ファイルシステムユーティリティ関係
▷ UUIDのセットアップとかをpyで
》 external/bluetooth/bluez/test/dbusdef.py
▷ Androidのbluezでは、DBusでイベントのメッセージングをしてる。その定義をpyで
》 external/gtest 系
▷ 約15ファイル
▷ GoogleTestというGoogleのC++用テスティングフレームワーク関係のやつら
› http://code.google.com/p/googletest/
› と、おそらく同じもの
》 external/v8 系
▷ 約20ファイル
▷ GoogleのJavaScriptエンジン
› (Androidブラウザのために)
▷ オープンソース、BSDライセンス› http://code.google.com/p/v8/
》 external/icu4c/stubdata/icu_dat_generator.py
▷ ロケールに関連したICUのデータファイルを作るスクリプト
》 external/quake/tools/dumpms2.py
▷ 何で入ってるのかわからない。。。
▷ 3Dゲーム
› http://www.idsoftware.com/games/quake/quake/
› ちなみにwinquakeやquakeworldといったもののソースも全部入っている感じのよう
› ファイルの変換をするスクリプトがpy
》 external/wpa_supplicant_6/wpa_supplicant/examples/wpas-test.py 》 無線LAN関係のなんかのテスト用pyっぽい
》 dalvik/tools 系
▷ 約5ファイル
▷ Dead methodを探して出力するとか
▷ Gclogを出力するとか
》 system/extras/tests/sdcard/plot_sdcard.py
▷ SDカードのパフォーマンスをテストして、結果をプロットするpy
》 packages/experimental/procstatlog/procstatreport.py
▷ proc/stat(プロセスの状態)のログをHTMLファイルへ出力するpy
》 packages/providers/CalendarProvider/maketests.py
▷ CalenderのContentProviderのテスト関係のpy› なぜかcalenderだけpyあり。他はpy無し
》 bionic/tools 系
▷ 約12ファイル
▷ ヘッダを消したりとか細々とした作業の省力化に使われている気が。
》 /bootable/recovery/tools/ota/convert-to-bmp.py
▷ AssetイメージをBMPに変えるスクリプト
》 ./device/htc/common/releasetools.py
▷ Htc用リリースツール?
》 build/tools 系
▷ 約10ファイル
▷ HTMLを吐くやつらばっかのような?› ファイルリスト同士を比較したり
› ビルド時の警告を出したり
》 ./system/core/libacc/tests/test.py
▷ Android “Almost”C Compiler のテスト
▷ A small subset of the C language.
》 cts/tools 系
▷ 約5ファイル
▷ ctsのビルド
▷ こんな分割してるやつらとか。。。
<Root> <A name="i"> <B>1</B> <B>2</B> </A> <A name="ii"> <B>3</B> </A> </Root>
<Root> <A name="ii"> <B>3</B> </A> </Root>
<Root> <A name="i"> <B>1</B> <B>2</B> </A> </Root>
・・・
だいたいこんなかんじ
Logcat(ログ)を見やすくするやつとか、ほかにもネットにはいろんなPythonが転がってます。
》 豊かなAndroidライフは、Pythonのおかげで、なりたってます
》 Pythonがあるから、Androidがあります
》 Pythonは、あなたの気付かないところで、皆の生活を支えています
》 おはようからおやすみまで、暮らしを見つめるPython