python hackathon 2010. 07. 10

32
Pythonは あなたのAndroidライフ を応援します 2010/7/10 えがわ たかし ぱいそん はっかそん 2010.7

Upload: takashi-egawa

Post on 28-May-2015

961 views

Category:

Technology


0 download

DESCRIPTION

There are so many .pys in Froyo.

TRANSCRIPT

Page 1: Python hackathon 2010. 07. 10

Python はあなたのAndroidライフ

を応援します

2010/7/10

えがわ たかし

ぱいそん はっかそん 2010. 7

Page 2: Python hackathon 2010. 07. 10

今日言いたいこと

Page 3: Python hackathon 2010. 07. 10

今日言いたいこと

 あなたの Python は、

Page 4: Python hackathon 2010. 07. 10

今日言いたいこと

 あなたの Python は、

Android のいろいろなところで

使われています。

Page 5: Python hackathon 2010. 07. 10

t_eggとは

Page 6: Python hackathon 2010. 07. 10

じこしょうかいえがわ たかし/egg/ @t_egg

Pythonでごはんを食べてたこともあります 

Androidは、たしなむ程度ですIMoNiというアプリを作ってます

Page 7: Python hackathon 2010. 07. 10

IMoNiとは非公式

iモードメールクライアントです。

@docomo.ne.jpのメールを見たり、メールを送信したり

できます

Page 8: Python hackathon 2010. 07. 10

23万5000ダウンロード21万アクティブ  (89%)        七夕の日 現在

ダウンロード数とか

Page 9: Python hackathon 2010. 07. 10

23万5000ダウンロード21万アクティブ  (89%)        2010. 7. 7現在

日経産業新聞 2010.06. 29

ダウンロード数とか

Page 10: Python hackathon 2010. 07. 10

あなたのAndroidライフを応援するPython

Page 11: Python hackathon 2010. 07. 10

11

grandma:̃ egap$ cd froyo grandma:froyo egap$ find . -name "*.py" -print ¦ wc -l

Page 12: Python hackathon 2010. 07. 10

12

grandma:̃ egap$ cd froyo grandma:froyo egap$ find . -name "*.py" -print ¦ wc -l 430

430 .py

Page 13: Python hackathon 2010. 07. 10

grandma:froyo egap$ find . -print ¦ wc -l 119425

参考までに

全ファイル数

Page 14: Python hackathon 2010. 07. 10

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

Page 15: Python hackathon 2010. 07. 10

.pyなやつらin Froyo

Page 16: Python hackathon 2010. 07. 10

》 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

Page 17: Python hackathon 2010. 07. 10

》 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)

Page 18: Python hackathon 2010. 07. 10

》 development 系 (3)

▷  Sample Sync Adapter

›  development/samples/SampleSyncAdapter/samplesyncadapter_server

› クラウドベースのサービスとAndroidのアプリ側とのデータの同期(ContentProviderなど)をこうすればいいよ!というシンプルなデモ○ クライアントはもちろんAndroid

○ サーバー側がpyで出来ている

☆ こんなかんじのサンプルページ

☆ http://samplesyncadapter.appspot.com/users

Page 19: Python hackathon 2010. 07. 10

》 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・・・

Page 20: Python hackathon 2010. 07. 10

》 Repo

》 約35ファイル

》 ツールそのものがpyで

› Gitをラップしたユーティリティみたいなもので複数のgitレポジトリを束ねる

》 frameworks/base/tests/DumpRenderTree/assets

▷ レイアウトの階層やレイアウトの関係をテストするテスト用アプリ

▷ それらのテストを一括で走らせるpy

Page 21: Python hackathon 2010. 07. 10

》 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/ )の息のかかったもの

Page 22: Python hackathon 2010. 07. 10

》 external/qmenu 系

▷  5ファイル

▷ エミュレータ系

▷  Skin作ったり、文字マップ作ったりするpy

》 external/sonivox 系

▷  JetCreatorのものばかり

▷  JetCreatorとは、MIDIをゴニョれるやつ

▷ ちなみにhidecheckさんの日本語化docあり›  http://hidecheck.web.fc2.com/JetCreator/

Page 23: Python hackathon 2010. 07. 10

》 external/blktrace 系

▷  2ファイル

▷  bttプロットするユーティリティ

》 external/e2fsprogs 系

▷  Ext2ファイルシステムユーティリティ関係

▷  UUIDのセットアップとかをpyで

》 external/bluetooth/bluez/test/dbusdef.py

▷  Androidのbluezでは、DBusでイベントのメッセージングをしてる。その定義をpyで

Page 24: Python hackathon 2010. 07. 10

》 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/

Page 25: Python hackathon 2010. 07. 10

》 external/icu4c/stubdata/icu_dat_generator.py

▷ ロケールに関連したICUのデータファイルを作るスクリプト

》 external/quake/tools/dumpms2.py

▷ 何で入ってるのかわからない。。。

▷  3Dゲーム

›  http://www.idsoftware.com/games/quake/quake/

› ちなみにwinquakeやquakeworldといったもののソースも全部入っている感じのよう

› ファイルの変換をするスクリプトがpy

Page 26: Python hackathon 2010. 07. 10

》 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

Page 27: Python hackathon 2010. 07. 10

》 packages/experimental/procstatlog/procstatreport.py

▷  proc/stat(プロセスの状態)のログをHTMLファイルへ出力するpy

》 packages/providers/CalendarProvider/maketests.py

▷  CalenderのContentProviderのテスト関係のpy› なぜかcalenderだけpyあり。他はpy無し

Page 28: Python hackathon 2010. 07. 10

》 bionic/tools 系

▷ 約12ファイル

▷ ヘッダを消したりとか細々とした作業の省力化に使われている気が。

》 /bootable/recovery/tools/ota/convert-to-bmp.py

▷  AssetイメージをBMPに変えるスクリプト

》 ./device/htc/common/releasetools.py

▷  Htc用リリースツール?

Page 29: Python hackathon 2010. 07. 10

》 build/tools 系

▷ 約10ファイル

▷  HTMLを吐くやつらばっかのような?› ファイルリスト同士を比較したり

› ビルド時の警告を出したり

》 ./system/core/libacc/tests/test.py

▷  Android “Almost”C Compiler のテスト

▷  A small subset of the C language.

Page 30: Python hackathon 2010. 07. 10

》 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>

Page 31: Python hackathon 2010. 07. 10

・・・

だいたいこんなかんじ

  Logcat(ログ)を見やすくするやつとか、ほかにもネットにはいろんなPythonが転がってます。

Page 32: Python hackathon 2010. 07. 10

》 豊かなAndroidライフは、Pythonのおかげで、なりたってます

》 Pythonがあるから、Androidがあります

》 Pythonは、あなたの気付かないところで、皆の生活を支えています

》 おはようからおやすみまで、暮らしを見つめるPython