ほげほげ(仮)

仮死状態

Android

Dagger2メモ

Dagger2で最近知ったことのメモです。 バージョンは2.11-rc2。 Component.Builder Moduleが必要とするパラメータを渡して、Moduleのインスタンス化をDagger側でやってもらう。 AppComponent内に@Component.Builderをつけたinterfaceを作って、そこに使用して…

Android Architecture Components 感想

Google I/O 2017で追加された、Android Architecture Componentsを触ってみた感想です Components 大きく分けて4つあります。 Lifecycle LiveData ViewModel Room Roomはちょっと時間かかりそうなので別の機会で。(やるかは未定) とりあえず、Room以外の3…

Firebase Cloud Messagingで通知をカスタマイズ(Android)

Firebase Cloud Messaging (FCM)を試して、通知のカスタマイズについて調べてみました。 FCMとNotification FirebaseにはFCMとは別にNotificationという似たようなのがあります。 この辺りの違いは下記の記事にまとまってます。 Firebaseによるプッシュ通知…

RecyclerViewでDataBindingを使う

RecyclerViewでDataBindingを使用する簡単なサンプルです。 Gradle DataBindingの設定をしておきます。 android { // ... dataBinding { enabled = true } } データクラス サンプル用に次のような簡単なデータクラスを用意します。 public class Item { publ…

CircleCIでAndroidのビルドとテスト

CircleCIでAndroidのビルドとテストをするためのcircle.ymlのメモです。 circle.yml machine: java: version: oraclejdk8 dependencies: pre: - echo y | android update sdk --no-ui --all --filter "android-23,build-tools-23.0.3" test: override: - ./g…

AndroidにRetrolabmdaを導入する

今更な感じもしますが、AndroidにRetrolabmdaを導入する手順です。 RetrolabmdaはJava5,6,7でJava8のラムダ式を使えるようにしたものです。 ちょっと導入設定で少しハマったので手順を残しておきます。 環境 OS X El Capitan Android Studio 2.1 Android Gra…

SupportLibraryのVectorDrawableを使う

ベクター画像のVectorDrawableを使うことで各解像度ごとに画像を用意する必要がなくなります。また画像を拡大してもぼやけることなくキレイに表示できるようになります。 元々はAndroid5.0以降からの対応だったのですが、Support Library 23.2.0から5.0未満…

Androidでスクロールした時にToolbarを隠す

概要 Google Playのようにスクロールした時にToolbar部分を隠す単純な方法です。 SupportLibraryのみを使って実装できます。 余計な実装は極力省いていますのでActivityのみで実装してます。 注意 先に注意事項を。 これをLollipop未満のバージョンで実現す…

AndroidStudioを使ってUnityとAndroidの連携

概要 UnityとAndroidを連携するには色々やり方あると思いますが、AndroidStudioを使ってaarを作成し連携させます。 色々調べてたらEclipseとjarを使った連携をよく見かけましたが、ADTがもう開発終わってしまうので今後はAndroidStudioを使うべきでしょう。…

AndroidからCocos2d-xの処理を呼び出す

AndroidのJavaからCocos2d-xのC++の処理を呼び出します。 Objective-Cに比べるとかなり面倒です。 あとで出てくるjavahの箇所は面倒なので、関数名の規則がわかるなら飛ばしても平気です。 関連 Cocos2d-xからObjective-Cの処理を呼び出す - ほげほげ(仮) …

Cocos2d-xからAndroidの処理を呼び出す

Cocos2d-xのC++からAndroidのJavaの処理を呼び出す方法です。JNIを使用します。 Objective-Cの場合と違って結構面倒です。 ここの連携はEclipseで書いたほうが良いかもです。 関連 Cocos2d-xからObjective-Cの処理を呼び出す - ほげほげ(仮) AndroidからCo…

Androidのデバッグ実行時にパッケージ名、アプリ名を変更する

パッケージ名変更 build.gradleを下のようにすると、デバッグ時はパッケージ名の後ろに.debugが追加されるようになります android { ... buildTypes { debug { applicationIdSuffix ".debug" } release { ... } } } アプリ名変更 buildTypeがdebug時はsrc/de…

Android StudioからRobolectricのテストを直接実行する

Android Studio + Robolectricでは基本的にターミナルからGradleで実行する感じっぽいですが、これだとテスト結果が見づらいし全部のテストを毎回実行するのはムダだと思うでAndroid Studioから直接テストを実行できるようにしました。 注意点としては結構面…

AndroidStudio + Robolectric + Guardによる自動実行

JakeWharton/gradle-android-test-plugin がDEPRECATEDになってたのですが、いつの間にかrobolectric本家がfork(robolectric/gradle-android-test-plugin)してたので使い方をまとめおきます。 robolectric/deckard-gradle をシンプルにした感じです。 設定…

GuardでAndroidのテストを自動実行する

※追記 JakeWharton / gradle-android-test-plugin がDEPRECATEDになってしまいました… なのでこの記事は参考にしないでください。記事自体は一応残しておきます ※さらに追記 新しく書き直しました。AndroidStudio + Robolectric + Guardによる自動実行 - ほ…

Android StudioでRobolectricを使う

※追記 JakeWharton / gradle-android-test-plugin がDEPRECATEDになってしまいました… なのでこの記事は参考にしないでください。記事自体は一応残しておきます。 ※さらに追記 新しく書き直しました。AndroidStudio + Robolectric + Guardによる自動実行 - …

Daggerを触ってみた

気になっていたDaggerを少し触ってサンプルを作りました。公式のサンプルがぼくにとって分かりにくかったのですごくシンプルにしました。まだ分かってないこと多いです… DaggerはAndroidとJava向けの高速なDIコンテナです。 Daggerについて詳しくは公式をど…

Android + IntelliJ + Maven + ActionBarSherlockの環境を試してみる

Android Studioが発表されたのに今更感はハンパないですが、目的としてはIntelliJに慣れることとMavenを触っておきたかったっていう感じです。 Mavenはほとんど触ったこと無いのでかなり手こずりました。また、これはとりあえず動いたレベルなのでこの状態で…

Android Studioの設定をいじってみる

Android Studio 出ましたね。 自分はずっとEclipseだったので色々使い方に慣れないとダメなので、まずはちょっと設定をいじってみました。 テーマの変更 メニューのPreferences…->Appearance->ThemeをDarculaに変更してダーク系のテーマにします。 フォント…

ListViewの中にボタンを置くときの注意

ListViewの各行にボタンを置いた時にハマりそうな箇所のメモです。 ListViewのsetOnItemClickListenerが動かない時 Adapterで使用しているレイアウトファイルを次のようにします。

SharedPreferencesをテストする

SharedPreferencesをテストしたときのメモです。 テスト対象コードサンプル サンプルとしてボタン押したらSharedPreferencesに保存するだけのコードです。 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedIns…

Fragmentをテストしてみる

正しいやり方なのかは不明ですが、色々試した結果のメモ テスト対象コードサンプル Fragment内でButtonが押されたらEditTextをクリアするMainFragment.java public class MainFragment extends Fragment { private EditText mEditText; private Button mButt…

AlertDialog.Builder#setItemsの項目管理を改善する

AlertDialog.Builder#setItemsはリスト形式のダイアログを表示してくれますが、どうしても項目の管理がやっかいでした。 色々試して項目管理を楽できるようにしてみました。 問題点 AlertDialog.Builder#setItemsは第一引数に配列リソースIDのとString配列の…

FragmentでタブUIを簡単にできるライブラリ作った

今更な感じですが、TabActivityとかActivityGroupがdeprecatedになっちゃってタブ画面を作るにはどうすればいいか試行錯誤した結果です。 そもそもTabActivityとかActivityGroupは非常に使いにくいものでしたが…作ったのはGitHubにあげてあります。(名前は…

DeployGateについて

Android Advent Calendar 2012 (裏) 12/23担当の@STAR_ZEROです。 表は@shogoggさんです。 DeployGate使っててすごく便利だと感じたので軽く紹介します。 前日のネタとカブり気味ですが… 詳しい使い方等は公式ドキュメントも合わせて参照してください。 Depl…

AndroidのJUnitテスト結果を取得する

AndroidのテストプロジェクトではJUnitの結果が出力されません。 これを出力するためにはちょいとゴニョゴニョとすることが必要です。 今回使ったのは jsankey/android-junit-report · GitHub です Antで実行可能にする Antで実行できるようにするには下記の…

画像を挿入できるEditTextを作った

カーソルがある位置に画像を挿入できるEditTextを作ってみました。 単純にHTMLのimgタグを使ってるだけですが。 ソースコードはGitHubにあげてあります。 STAR-ZERO/ImageInEdit-android · GitHub] 参考: Html | Android Developers Html.ImageGetter | Andr…

WebViewでgifアニメを表示してるとWebViewCoreThreadが動き続ける

WebViewを使っていて電池の消耗が激しく調査したところ WebViewCoreThreadがずっと動き続けているのがDDMSから確認できました。 バックグラウンドに移行したときも動き続けてました。 更に色々調べたらgifアニメを表示している場合だとWebViewCoreThreadが動…

AndroidでWebSocket通信する

AndroidでWebSocket通信するサンプルです。 使用したライブラリは TooTallNate/Java-WebSocket · GitHub です。 weberknecht - Java WebSocket Client Library - Google Project Hosting のほうが人気があるらしいですけど、Java-WebSocketのほうがライセン…

Android4.0でフォントサイズが変わるのを何とかする

Android4.0(Ice Cream Sandwich)から設定でフォントサイズがユーザー側で変更できるようになっています。 spでフォントサイズを指定した箇所はコノ設定に従ってサイズが変わってしまいます。 コレを何とかしたいと思います。 とりあえず見つけた方法なので…