リア充爆発日記

You don't even know what ria-ju really is.

Android

Environmentによるディレクトリパスのメモ

実行コード System.out.println(Environment.getExternalStorageDirectory()); System.out.println(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)); System.out.println(Environment.getDataDirectory()); System.out.pri…

俺的Androidアプリ開発環境ニコニコセット 2012

独断と偏見による俺的Android開発を加速する開発環境やフレームワークなどのツールをまとめる。順番に意味は無い。 無いと死ねる編 Robolectric ないとテスト書けない mockwebserver ないとテスト書けない Android公式 そりゃそうでしょ。初めて触るAPIとか…

Robolectric + ormliteでUnitテスト

や。何もしなくてもよかった。。どうやってやるのが常道なのかなぁ、とか2時間近く調べて、ShadowSQLiteOpenHelperが絡んでくるんだろうな、というところあたりまではわかったけど、具体的にどうするのかわからなかった。が、前述のとおり、結局何もしなくて…

RobolectricでBase64

AndroidではAPI Level8(Android2.2)からBase64が組み込まれているんだけど、RobolectricにはまだShadowがないっぽい。・・・と思ったらgithubのmasterには1ヶ月ほど前に取り込まれてたよう。 https://github.com/pivotal/robolectric/pull/326だけどMavenで…

RobolectricでActionBarSherlockのテストをしようとしてNo implementations match configuration

java.lang.IllegalStateException: No implementations match configuration.もうそろそろ普通に開発させてくれんかね。。で、タウンページをめくってみるとABS本家のgithubが筆頭に。 https://github.com/JakeWharton/ActionBarSherlock/issues/377 When Ac…

Androidのテストツールならこれ!Robolectric導入の儀。

かつてはAndroid依存のモジュールのテストはド遅いからPOJOとうまく分離してなるべくPOJOを通常のUnitテストで・・・とか思っていた時期があったんだけど、この分離ってやつが相当キツくて。ンカスプログラマだから。つまりテスト書いてなかったんだけど、そ…

外部ライブラリプロジェクトを使ったプロジェクトをIntelliJとMavenで両立させる

りーむー。それはりーむー。2日使った結論。ここでいう”両立"というのは、どっちからでもビルドアンドデプロイができる状態を成立させて維持するという意味で。"apklib dependencyはコマンドラインからじゃないと機能しない" http://stackoverflow.com/quest…

IntelliJだとmavenでActionBarSherlockの依存関係を解決できないっぽい。

pom.xml ~snip~ <modules> <module>../ActionBarSherlock-4.2.0/library</module> </modules> ~snip~ <dependency> <groupId>com.actionbarsherlock</groupId> <artifactId>library</artifactId> <version>4.2.0</version> <type>apklib</type> </dependency> ~snip~ で、コマンドラインからのビルドは通るけど、IntelliJでコンパイルエラーがでる。で、こんなのを見つけ…

Android Maven Pluginを入れてMavenでAndroidをビルド

Maven化を進めてきたけど、ビルドしたりapkファイル作ったりはIntelliJ頼りな状態。 一人プロジェクトとかだとそこまで必要性はないかもしれないけどCIツールは導入するつもりだから、もうここでやっちゃえ、ということでMavenでビルドできるようにしておく…

セントラルリポジトリにないAndroidライブラリはMaven Android SDK Deployerでインストール

前回のエントリの最後にgcmがセントラルリポジトリにないから個別にDLしてローカルリポジトリに突っ込んだ件がありましたが、gcmやmapsなどセントラルリポジトリにないライブラリをローカルリポジトリに突っ込んでくれるツールがあった。。。ほんとなんでも…

IntelliJのandroidプロジェクトを途中からmaven管理しようとした時のメモ

Java界でサードパーティのライブラリを使おうとするたびに「Maven導入しておくとベンリなのかな?」と思わされるんだけど、これまでは目先の時間の無さを理由に振り切ってきた。なんか情報少ないし。めんどくさそうだし。が、ここらで導入してみることにした…

インテント間でオブジェクトを渡す方法

putExtra()にはプリミティブやString等のI/FはあるけどObjectのI/Fがない。で、今回ぼくはどうしてもLocation型のオブジェクトが渡したくなったので、どうにか渡せないか調べてみると、ざっくり シリアライズする Parcelを使う の2通りの方法が出てきた。シ…

爆速AndroidエミュレータがついにMacOSX10.8.2でも使えるようになった!!

Androidの爆速エミュレータ環境を構築しようとして挫けたマカーたちへ朗報 超絶待った。ついにFIX版がでました! http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager?page=4ここでhotfix版をDLしてインスコするだけで…

MapViewをタップしたらヌルポ。ヒント:(ItemizedOverlay.java:617)

ログはこんな感じ。 java.lang.NullPointerException at com.google.android.maps.ItemizedOverlay.getItemsAtLocation(ItemizedOverlay.java:617) at com.google.android.maps.ItemizedOverlay.getItemAtLocation(ItemizedOverlay.java:586) at com.google.…

EditTextでandroid:focusableInTouchMode="false"にしたらsetErrorがうまく動かなくなったときの対応法。

これはsetErrorで表示されるバルーン的なものがフォーカス時にのみ表示されるという仕様だから。次にフォーカスについてここで勉強する。超良記事。 たかがフォーカス,されどフォーカス View#requestFocusFromTouchメソッドを使うと、 タッチモード時でもfo…

layoutにborderを入れる

主にデバッグ用なんですけど。Viewのオプションではできないっぽい。ので、drawbleな枠を定義して、backgroundにそれを指定する。drawable/debug_border.xml <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="1dp" android:color="#ff0000" /> </stroke></shape>

DialogのEditorのFragment用、名付けてDialogEditor For Fragment

前回の続き。http://d.hatena.ne.jp/ria10/20121120/1353383249これがFragmentでは使えなかったのでFragmentで使えるようにがんばってみた。。

DialogのEditor、名付けてDialogEditor

EditTextをそのまま使うと、入力時にソフトウェアキーボードでエディタエリアが隠れたり、入力文字数のカウント表示をしようと思っても場所がなかったりといろいろ困ることが多い。で、そういう場合はダイアログ形式にして対応している人が多かったのでぼく…

Androidでログにスタックトレースを出力する一番簡単な方法

Logcatにstacktraceをダラダラ〜っと出したいときの話。3つ目の引数にExceptionを渡すだけでOKですぞ。 例) } catch (Exception e) { Log.e(TAG, e.getMessage(), e); }

Fragment内のViewのwidthがなぜか0のときの対応方法

ViewTreeObserverを使ってOnGlobalLayoutListenerで引っ掛ける。 @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); ViewTreeObserver observer = mImageView.getViewTreeObserver(); ob…

CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

UIスレッド以外でViewの操作をしようとするとタイトルのようなバチがあたります。あたりました。例えばこんなコードはバチあたり。 public void onCreate(Bundle savedInstanceState) { 〜中略〜 overlay.runOnFirstFix(new Runnable() { @Override public v…

Androidの爆速エミュレータ環境を構築しようとして挫けたマカーたちへ朗報

Androidエミュレータの遅さに苛立ちを募らせる中、このエントリを見て小躍りを踊った人たちも少なくないかと思います。 【番外編】Androidの爆速エミュレータ環境を構築するが、こちらにも記載されている通り、上記の方法をMac OSXの特定環境で行うとパツー…

Androidで例外が発生しうるシチュエーションとエラーレポートのしかたメモ

エラー処理を考えるときのインプットメモ。 見落としそうな環境や状況依存で発生しそうなエラーの原因。随時追加する。 本体 カメラがついてない GPSがついてない SDカード 入ってない 容量がいっぱい 指定ディレクトリがない 指定ファイルがない ネットワー…

AndroidでSQLiteを使おうとしたときの情報源まとめ

基本知識編 SQLiteデータベースの基本操作 知っておきたいSQLiteデータベースの注意点 SQLiteデータベースのチューニング セキュリティ AndroidアプリにおけるDBファイルの正しい使い方 ORM OrmLite 「SQL文?何それおいしいの?」ORMLiteで楽しくAndroid開…

AndroidのエミュレータのSQLiteのデータファイルはどこにあってどうやって見るの!

OSXだと物理的にはここにある。 /Users/{USER}/.android/avd/{イメージ名}.avd/sdcard.img Windowsも似たようなもんだろ。 でもSDカード、イメージだからここからSQLiteのファイルは引っ張れない。ここでみんな大好きDDMSの出番。メニューのDevice > File Ex…

Androidのインテントのまとめメモ

http://developer.android.com/guide/components/intents-filters.htmlのまとめメモ。Intent周りはノリでやってたけど、ブロードキャスト実装をやってたら、ちゃんと仕様を抑えないとキツくなってきたので。。 アクティビティ、サービス、ブロードキャストレ…

AndroidのBound Serviceのまとめメモ

http://d.hatena.ne.jp/ria10/20121110/1352529426の続き。 http://developer.android.com/guide/components/bound-services.html ここを読んでのメモ。 基本 http://d.hatena.ne.jp/ria10/20121110/1352529426に記載されているとおりBound Serviceはクライ…

Androidのバックグラウンド処理に使うServiceのまとめメモ

http://developer.android.com/guide/components/services.html ここを読んでのメモ。 概要 ServiceはUIを伴わず、長時間走らせたい処理を行うコンポーネント ユーザーがアプリを切り替えても、処理を走らせたままにできるし、例えばネットワークトランザク…

Androidで位置情報を扱うときに使うLocationManagerの使い方の要点まとめ

http://developer.android.com/training/basics/location/locationmanager.html ここを読んでのまとめメモ。基本的に要約。※は僕の付け足し作ればわかる! Androidプログラミング 第2版 -SDK4対応- (Smart Mobile Developer)作者: 金宏和實出版社/メーカー: …

MacのAndroidエミュレータの位置情報を設定する方法

なんだかわからなくて結局コマンドラインの方法しか見つかってないんですけど。。 追記)GUIでの設定法もわかったので、一番したのほうに追記しました。参考:http://forums.oreilly.com/topic/21125-enabling-geolocation-in-android-emulator/なんとtelnet…