2010-01-01から1年間の記事一覧
海外のGalaxyTabで、現時点で見つけた問題と解決方法をまとめました。なお、国内向けに発売されるGalaxyTabでも同様の現象になるかは不明です。 Activityのウィンドウサイズが小さく表示される このように表示されるアプリがあるみたい。少し分かり難いです…
ProGuardはJavaコードを最適化/難読化するためのツールです。apkのサイズが少なくなったり、apk解析された際に解析され難くなります。 今回は難読化のさせ方がよく分からなかったので整理しておきました。なお、ProGuardのバージョンは4.5を使用しています。…
リソースフォルダ名って色々な条件を設定出来るけど、ついつい忘れがちです。例えば、hdpiでも解像度が800×480・854×480・960×640があっても、それら個別に画像やレイアウトを用意できちゃえます。 なお、以下の表にあるdrawableはlayoutやvalue等に置き換え…
すぐOOMになる!もうVM落ちちゃったじゃない!て、人のタメにHeapSizeの調べ方を書いておく。ちなみにService系を作っているので基本LogCatに出したりSDcardに書き込む方法を好んで使ってます。長時間に渡って採取する必要が無ければ他の方法を取る方が分か…
MainActivityのあるアプリならMain画面が起動されますが、そうではないService系アプリの場合はどうしたら良いのでしょう?一番よく取られるやり方はLauncher画面を一つ用意する事です。HelpをMainActivityにすればLauncher一覧に表示され、Marketからも開け…
NDKやらにゃなーと思ってので試して見ることにしました。使用するのは Android NDK, r4 です。r3とr4ではNDKインストール手順が異なりますし、今後また変わるかもしれませんので注意してください。 今回は android-ndk/samples/hello-jni をコピペしながら実…
マナーモードON/OFF時にBroadCastされるのでReceiveすればマナーモード状態を取得できます。 IntentFilter設定 Javaコード上で以下のように設定。 IntentFilter filter = new IntentFilter(); filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION); r…
画像読込時のOutOfMemory回避のお伴に BitmapFactory.Options が非常に有効です。本日はそんなAPIで何が設定出来るのか整理してみました。 設定一覧 inDensity bitmapのpixelを調整するらしいけど、どう使っていいかよく分からない。 inDither trueの場合、…
今までいくつかのPadを見てきましたが、今のところの共通点は以下のようになります。 Density Dpi が 160dpi(mdip)以下 解像度は480×800以上 この事から分かるように、dpiが低く解像度を高くすることで携帯端末よりも大きいディスプレイを快適に使うための工…
アプリの紹介はこっそり始めてたオレオレなアプリまとめサイトに内容を記載しています。今回はLiveWallpaperアプリを開発するにあたり、詰まった点などを適当に書き残しておきます。俺の屍を超えてゆけ... Out Of Memory との闘い LiveWallpaperでパラパラア…
素のAndroidの場合、内部で保持しているバッテリー情報は1%刻みで持っていますが。JN-DK01ベースの端末*1の場合は10%刻みで保持しているようです。 保持の仕方も、例えばバッテリー残量が80%から70%になった場合と60%から70%になった場合で、内部に保持され…
LiveWallpaperでプレビュー表示から設定したときにOutOfMemoryエラーが起こりやすい原因を調べてみました。 新規設定 LiveWallpaperをプレビューで表示 プレビュー上でLiveWallpaperアプリ起動 LiveWallpapserをHomeに設定 Home上でLiveWallpaperアプリ起動 …
ステータスバーの高さって端末毎に違いますよね?低/中/高解像度毎に違うのは別に構わないのですが、Xperiaのように高解像度だけど他高解像度端末と異なるサイズなどあり、どうすりゃいいんだよ!と思ったけど、1つの解決策としてシステムアイコンのサイズを…
スクリーン上でタップしたときに呼ばれるonCommandメソッドの特性を整理しました。 取得できるイベント 2種類あります。 スクリーン上の何も無い場所をタップ スクリーン上でAppIcon移動 なお、AppWidget作成やショートカット作成ではコールされませんでした…
忘れがちなのでメモ Resource → Bitmap BitmapFactory.decodeResource(getResources(), R.drawable.icon) Resource → Drawable getResources().getDrawable(R.drawable.icon) Drawable → Bitmap ((BitmapDrawable) drawable).getBitmap() Bitmap → Drawable …
Android開発し始めたばかりの人で、LogCatにどんな情報が流れてるか分からない。って人が多いので知ってる範囲で整理しました。 エラーの種類 タイプ Log出力方法 ログの意味 V Log.v(TAG, "VERBOSE") 簡易メッセージ D Log.d(TAG, "DEBUG") デバッグメッセ…
LiveWallpaperはWallpaperServiceを継承したメインクラスから、Engineを継承したLiveWallpaperの核となるクラスから構成されています。今回はそんな核なクラス、Engineのライフサイクルを整理しました。 LiveWallpaper設定時*1 onCreate onSurfaceCreated on…
Android端末に対して、一定以上の負荷を掛けると ActivityManager が悲鳴を上げて各Activity/Service が落ちる場合があります。もちろんAppWidgetも例外なく落とされるのですが、落とされたアプリをもう一度起動しようと ActivityManager は頑張ってくれます…
"ホーム画面に追加" にある "ショートカット" にリストアップされる「ショートカットのアプリ作成方法」を簡単にまとめます。 AndroidManifest actionをショートカット特有のモノにすればショートカット一覧に並びます。 <activity android:name=".ShortcutActivity" > <intent-filter> <action android:name="android.intent.action.CREATE_SHORTCUT" /> </action></intent-filter></activity>
KDDIデザイニングスタジオでIS01端末の展示が行われていたので触ってきました。既にファーストインプレッション記事が多く上がっており、今更ですが主にAppWidget周りを見てきたので書いておきます。 Homeの特徴 解像度は960×480ですが、右側にメニューがあ…
アイコンが汚いとさんざんクレームが入ったので、描き直しました。後はアイコンの色を7色の中から変更できるようにして、背景色も同様に変更できるようになってます。 久しぶりにブログ内で触れたので、アプリの説明をしておきます。 概要 このアプリは壁紙…
マーケットへアクセスする時のURIを整理してみました。PGから直接呼び出すときはもちろん、HP上にリンク貼ったりQRコード貼る時にも使えます。 AndroidMarketへのアクセスURI パッケージ名の完全一致検索(アプリ一覧の表示) market://search?q=pname: 開発者…
Androidでリソースを共有すると言えばコンテンツプロパイダがありますが、今回はsharedUserIdを使っての共有方法を整理しました。 今回やることの図解 概念 AndroidのベースとなっているのはLinuxカーネルです。Linux文化を継承した権限構成になっており、ap…
ピアプロのキャラクター*1をAndroidMarketで使用して良いか分からなかったので、権利元となるクリプトン・フューチャー・メディア株式会社さんに確認してみました。 無償非営利の場合 現在の所は、こちらの「非営利かつ無償の利用について」に準拠した規約に…
暇人A君と暇人B君が作りました。 歌詞 細長い、ビルの入りぐち二つあり。 その上に、おっきいビルがありました。 横に看板ふたつあり。 そんなビルに、半分お月さまが落ちてきて、落ちた拍子に丸二つ。 最後につのさしゃドロイド君。
スタッフとして参加しましたが、メイン会場でマイク係してたのでプレゼン内容は聞けました。長く書くのはメンドウなので気になった点だけメモ。 ARお絵描きツール「Feel Sketch」 絵をPMcodeに変換。それをAndroid端末で読み取って、カメラ上に絵をオーバー…
AndroidではMarket登録時にコピープロテクトを掛けるかどうか設定できます。今回はこの設定をする事でどうなるかを整理します。 コピープロテクト OFF アプリをコピーできる ON アプリをコピーできない ユーザーがRootだとMarket上に表示されない表示される…
やり方が分からなかったのですが、Twitterで方法を教えて貰いました。 やりたい事のイメージ ActivityがRunning状態で。左画像レイアウト状態のとき、動的に右画像レイアウト状態にする。 やりかた XML定義 TextViewとButtonを定義します。ここは普通。
Buttonはまさに「ボタン」なAndroidのButtonですが、単純にImageButtonのBackgroundに絵を表示させても押されたか押されてないか分からない!フォーカス当たってるのかさえ分からないよ!src設定したらButton剥き出しだしって、どうしたらいいの!...と言う…
毎回ググってるので整理してみた。 取得方法 画面解像度 端末の各解像度に対応する際には必須となる。 WindowManager w = getWindowManager(); Display d = w.getDefaultDisplay(); int height = d.getHeight(); int width = d.getWidth(); 壁紙解像度 壁紙…