shokai前:CircleCIでAndroidのプロジェクトをビルドする色々やってプロジェクトが複雑化してきたら、2回ビルドできなくなった。assembleDebugメモリが足りないメモリを4GB以上使うとテストがこける。Blogを参考に、machineのJAVA_OPTSでメモリ使用量を設定した。AndroidのVMを起動してのテストせず、ビルドだけなので2GBに制限した。見ているとgradleからたまにjavaのプロセスがforkしているように見えたのでとりあえず4GBの半分使うようにしておいた。CircleCIでの実行時は環境変数CIRCLECIが設定されるのでbuild.gradleも設定した。VMの実行ファイルだが、次回コンパイルを高速にするらしい?)を生成しないようにした。locations:https://jcenter.bintray.com/com/google/android/gms/play-services-wearable/8.3.0/play-services-wearable-8.3.0.pomhttps://jcenter.bintray.com/com/google/android/gms/play-services-wearable/8.3.0/play-services-wearable-8.3.0.jarfile:/usr/local/android-sdk-linux/extras/android/m2repository/com/google/android/gms/play-services-wearable/8.3.0/play-services-wearable-8.3.0.pomfile:/usr/local/android-sdk-linux/extras/android/m2repository/com/google/android/gms/play-services-wearable/8.3.0/play-services-wearable-8.3.0.jarfile:/usr/local/android-sdk-linux/extras/google/m2repository/com/google/android/gms/play-services-wearable/8.3.0/play-services-wearable-8.3.0.pomfile:/usr/local/android-sdk-linux/extras/google/m2repository/com/google/android/gms/play-services-wearable/8.3.0/play-services-wearable-8.3.0.jarCircleCIのドキュメントによるとdependenciesのpreでandroidコマンドを実行してupdateできるとの事だったので、circle.ymlに設定した。--extendedで確認できる。shokaiAndroidAnnotationsを使い始めた。findViewByIdを@ViewById(R.id.button)とか書けたり、@Click(R.id.button)の後に関数を定義でクリックリスナーとして登録されたりとかで便利だった。1つずつ実行したい@Backgroundを関数の頭に付けるとその関数は非同期実行されるようになる。AsyncTaskなどを自分で書かなくてすむ。複数の非同期な関数を順番に呼び出したい時があって(例えばWebAPIとか)、一気に実行されたら困る。順番に実行するには1つ目の関数のコールバックに2つ目の関数を登録するか、Promiseみたいなものを返すとかしなければならなくなる。非同期処理を順番に実行したい時はRxJavaとかjdeferredとか使わないといけないのかな・・とか思ってたけどAndroidAnnotationでも綺麗に書けた。Wiki@Backgroundは何も指定しないと全て並列に動作するのだが、同じserialを指定されたBackgroundは1つずつ実行される。Threadを管理しているBackgroundExecutorがqueueを持っているらしい。アイコンを表示のような処理を簡単に書ける。}まあなんとか我慢できる程度に読みやすいコードになる。shokaiAndroidのtestまだよくわからないのでとりあえずビルドだけする。