ブックマーク / hyoromo.hatenablog.com (26)

  • 古いProGuard設定に縛られしプロジェクトがADT22系にアップデートした時に発生かもしれないエラーの解決法 - hyoromoのブログ

    最近のイケてるプロジェクトは発生してないようですが、プロジェクトによっては以下の様なエラーが発生するかもしれません。 Proguard returned with error code 1. See console MangaPageActivity: can't find referenced method 'android.view.Window getWindow()' in class jp.xx.xxxx.HogeActivity (中略) Warning: there were 39 unresolved references to program class members. Your input classes appear to be inconsistent. You may need to recompile them and try again. Alternati

    古いProGuard設定に縛られしプロジェクトがADT22系にアップデートした時に発生かもしれないエラーの解決法 - hyoromoのブログ
    kkeisuke
    kkeisuke 2013/07/22
  • 画像サイズ一覧 - hyoromoのブログ

    WindowsPhone8のアプリ内部でよく扱う画像サイズを一覧化しました。表記していませんが画像形式は、スプラッシュ画面はjpg、それ以外はpngとなります。 アプリ内部で使う画像サイズ一覧 スプラッシュ画面だけは固有ファイル名で認識し、必要な場合はサポートする解像度ごとに用意できます。 画像種類 サイズ別 サイズ(縦×横px) 用途 固定ファイル名 アプリ アイコン - 100×100 アプリ一覧画面に表示*1 - LiveTile(Flip/Cycle) 小 159×159 スタート画面上に表示される小タイル全域に表示 - 中 336×336 スタート画面上に表示される中タイル全域に表示 - 大 336×691 スタート画面上に表示される大タイル全域に表示 - LiveTile(Iconic) 小 110×110 スタート画面上に表示される小タイル上の一部に表示 - 中 202×20

    画像サイズ一覧 - hyoromoのブログ
    kkeisuke
    kkeisuke 2012/11/26
    WindowsPhone8のアプリ内部でよく扱う画像サイズを一覧
  • 新・開発者に便利なアプリ紹介 - hyoromoのブログ

    昔に書いた内容がクソの役にも立たないので新たに書き直しました。 BatteryMix バッテリー管理アプリ 各アプリ稼働率やバッテリー影響具合をグラフ化してくれるため、自分の開発したアプリがどの程度端末に影響を及ぼすかが手軽に計測できる。 Quick Settings 各種設定の一覧表示アプリ 設定画面で設定可能な情報を自分でカスタマイズして一覽に表示できる。Notificationへ表示させ、ダイアログ表示も可能なので別アプリ起動中に表示させる事も可能。 アプリテスト中に3G/Wifi回線を切りたい時に重宝している。 LocaleSwitchWidget 言語切替をワンタッチで行えるウィジェットアプリ 予め指定した2つの言語をワンタッチで切り替えが出来るアプリ。 英語と日語を設定しておけばロケールテストし易い。 SuperBox CPU/メモリ観測、バッテリー観測、DLファイル内のap

    新・開発者に便利なアプリ紹介 - hyoromoのブログ
    kkeisuke
    kkeisuke 2011/05/27
    Android
  • Notification表示されてればTaskKillerに殺されないServiceの作り方 - hyoromoのブログ

    ユーザーへ動作している事が認知されるServiceはTaskKillされない実装が出来るらしい。 そのため「Notification表示中」という条件が付いてしまうが、TaskKillerには殺されない実装が出来るみたい。 方法 そもそも android developpers の Service#startForeground にやりかたがそのまま載ってる。そのまま実装すればおk。 検証 Nortification表示してる/してない時の状態が分かりやすいようなサンプルアプリを作ってGitHubに公開しました。 Github -NotKillNotification- アプリ起動するとServiceが起動され"hoge"と言うTAGでログを出力し続ける、Nortification表示の時はTaskKillerに殺されようとしても死なず、Nortification非表示の時は殺される*1。

    Notification表示されてればTaskKillerに殺されないServiceの作り方 - hyoromoのブログ
    kkeisuke
    kkeisuke 2011/05/09
    Android
  • In-app Billing試してみた その1 - hyoromoのブログ

    先日からアプリ内課金が行えるようになったので、現在開発中のアプリに仕込んでみました。 今回は導入からアプリ課金ページ表示の所まで簡単に書き残しておきます。 概要 だいたいの説明は android developers ページに載っています。 英文読んでから気づいたんですが、日語訳ページがあるようです。訳された方に感謝しながら、英語に自信無い方はこっち見た方が分かりやすそうです。 だいたいの課金のやりとり アプリ側でアイテム購入のボタンを押下 アプリ側からアプリ内サービスIDをキーに、AndroidMarketアプリに対してアイテム購入リクエスト送信 AndroidMarketアプリが、デベロッパーコンソール上に登録されたアプリに紐付くアイテムの中からアプリ内サービスIDと一致したデータステータス情報を取得 データステータス情報がアイテム未購入で該当アイテムが購入できる状態にあれば、And

    In-app Billing試してみた その1 - hyoromoのブログ
    kkeisuke
    kkeisuke 2011/04/11
    Android, アプリ内課金
  • タイル状に画像を敷き詰める - hyoromoのブログ

    よくWebサイトであるような、小さな画像を背景にタイル状に敷き詰める方法。 xmlでの方法を書く人は居るのに、javaで書いてくれてる人が居ないので整理しておく。 XML指定での方法 res/drawable/icon_repeat.xml ポイントはtileModeをrepeatに設定している事。 <?xml version="1.0" encoding="UTF-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:tileMode="repeat" android:src="@drawable/icon" ></bitmap> res/la

    タイル状に画像を敷き詰める - hyoromoのブログ
    kkeisuke
    kkeisuke 2011/02/08
    Android
  • SoundPoolのload上限 - hyoromoのブログ

    同じインスタンスでloadし、再生有効なIDの上限は255までと決まっています。 Sound Idが256以降になるとIDの採番は行われますが、SoundPool#play で256以上のIDを引数としても再生されません。 すなわち使用できるSound IDは1から255。

    SoundPoolのload上限 - hyoromoのブログ
    kkeisuke
    kkeisuke 2011/02/07
    Android
  • Gesture APIを利用 - hyoromoのブログ

    AndroidOS1.6以上から使えるようになった android.gesture APIを試してみました。 Googleが提供しているSampleがあります。 ジェスチャーライブラリ作成 事前に使用するジェスチャーを登録しておく必要があります。 ジェスチャーを登録する方法は以下の二種類となります。 ADVでSDカードありで作成し、アプリ内にあるGestures Builderにてジェスチャー登録。 android-sdk/samples/android-5(以上)/GestureBuilder/ をビルドしてSDカードのある端末にインストール、端末上にてジェスチャー登録。 ジェスチャー登録後にデバイスのsdcard直下にgesturesが作成されているのでPC側にコピーする。 なお、どちらの方法でも構いませんが、端末上でジェスチャー登録する方が描きやすいのでオススメです。 アプリに取り込

    Gesture APIを利用 - hyoromoのブログ
    kkeisuke
    kkeisuke 2011/01/30
    Android
  • Admob設定方法 - hyoromoのブログ

    自分用メモ。コピペでいけるように書いてるつもり。Admob自体の初期設定に関しては他のサイトを参照ください。 配信アプリケーションのサイト上での設定 Admob公式サイトのmy site上にある「サイト/アプリケーションの追加」をクリック。 Androidアプリケーションを選択。 App名、AndroidMarketのURL名、ジャンル、アプリ説明を書きます。 遷移先のページは無視して、再度my sitesに戻ります。 今回作ったアプリ名が一覧に表示されるので、「設定を管理」をクリック。 パブリッシャー IDが表示されるので、これを覚えておいてください。 アプリ側への設定 AndroidManifest設定 以下のコードをapplicationタグ内に追加。パブリッシャー IDは先ほど覚えた物を使用する。 <manifest> <application> ・・・省略・・・ <activit

    Admob設定方法 - hyoromoのブログ
    kkeisuke
    kkeisuke 2011/01/04
    Android
  • GalaxyTab固有の問題と解決方法 - hyoromoのブログ

    海外のGalaxyTabで、現時点で見つけた問題と解決方法をまとめました。 なお、国内向けに発売されるGalaxyTabでも同様の現象になるかは不明です。 Activityのウィンドウサイズが小さく表示される このように表示されるアプリがあるみたい。 少し分かり難いですが、ディスプレイサイズよりもActivityサイズが一回り小さい事が、タイトルバーを見て分かるかと思います。 解決方法 AndroidManifest.xml に minSdkVersino か targetSdkVersion のどちらかを書けばOK。sdk versionは4以上にしてください。 どうやら、デフォルトだと3以前の中解像度扱いとなるようです。例えばmanifestタグ内へ以下のように書いておく。 <uses-sdk android:minSdkVersion="4" /> LiveWallpaperでMed

    GalaxyTab固有の問題と解決方法 - hyoromoのブログ
    kkeisuke
    kkeisuke 2010/11/23
    AndroidManifest.xml に minSdkVersino か targetSdkVersion のどちらかを書けばOK。sdk versionは4以上
  • ProGuardを使っての難読化方法 - hyoromoのブログ

    ProGuardはJavaコードを最適化/難読化するためのツールです。apkのサイズが少なくなったり、apk解析された際に解析され難くなります。 今回は難読化のさせ方がよく分からなかったので整理しておきました。 なお、ProGuardのバージョンは4.5を使用しています。 前準備 ProGuardの導入に関しては他ブログを参照ください。 公式のここやここのブログの方が綺麗に導入方法をまとめています。 一応ハマりポイントだけまとめておきます。 ADTをr7に上げる proguard.dirはProGuardのlibまでのパス androd-sdk内のantファイルでjavacタグ内のencodingをUTF-8にする プロジェクト内にて以下のコマンドを実行すると正常に処理されたら準備OK。 $ ant release ここまでで出来ている必要があるもの。 obf以下にdump.txtやmap

    ProGuardを使っての難読化方法 - hyoromoのブログ
    kkeisuke
    kkeisuke 2010/11/20
    apkのサイズが少なくなったり、apk解析された際に解析され難くなります。
  • リソースフォルダ名の設定方法 - hyoromoのブログ

    リソースフォルダ名って色々な条件を設定出来るけど、ついつい忘れがちです。 例えば、hdpiでも解像度が800×480・854×480・960×640があっても、それら個別に画像やレイアウトを用意できちゃえます。 なお、以下の表にあるdrawableはlayoutやvalue等に置き換え可能。 よく使う設定方法 フォルダ名 意味 drawable OS1.5までの指定方法。OS1.6以上でも指定出来るがmdpi扱いになってるんじゃね? drawable-ldpi 低解像度扱いの画像を格納 drawable-mdpi 中解像度扱いの画像を格納 drawable-hdpi 高解像度扱いの画像を格納 drawable-nodpi 解像度を意識しない画像を格納*1 drawable-port 縦画像を格納 drawable-land 縦画像を格納 drawable-ja 日語ロケーション時の画像を

    リソースフォルダ名の設定方法 - hyoromoのブログ
    kkeisuke
    kkeisuke 2010/11/19
    Android
  • NativeHeapSizeの調べ方 - hyoromoのブログ

    すぐOOMになる!もうVM落ちちゃったじゃない!て、人のタメにHeapSizeの調べ方を書いておく。 ちなみにService系を作っているので基LogCatに出したりSDcardに書き込む方法を好んで使ってます。長時間に渡って採取する必要が無ければ他の方法を取る方が分かりやすいかも、TraceViewとか使えば良いよ。 NativeHeapSize出力方法 String memory = "Free=" + Long.toString(Debug.getNativeHeapFreeSize() / 1024) + "kb" + // 空きヒープサイズ ", Allocated= " + Long.toString(Debug.getNativeHeapAllocatedSize() / 1024) + "kb" + // 使用中ピープサイズ ", Size=" + Long.toStri

    NativeHeapSizeの調べ方 - hyoromoのブログ
    kkeisuke
    kkeisuke 2010/10/18
    Android
  • マナーモード状態の取得 - hyoromoのブログ

    マナーモードON/OFF時にBroadCastされるのでReceiveすればマナーモード状態を取得できます。 IntentFilter設定 Javaコード上で以下のように設定。 IntentFilter filter = new IntentFilter(); filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION); registerReceiver(new EventReceiver(), filter); 試していませんが、AndroidManifestに以下のように設定してもOKだと思います。 <intent-filter> <action android:name="android.media.RINGER_MODE_CHANGED" /> </intent-filter> Receiver設定 public class

    マナーモード状態の取得 - hyoromoのブログ
    kkeisuke
    kkeisuke 2010/10/03
    Android マナーモードON/OFF時にBroadCastされるのでReceiveすればマナーモード状態を取得できます。
  • BitmapFactory.Options の使い方   の説明をちゃんとしたかったな... - hyoromoのブログ

    画像読込時のOutOfMemory回避のお伴に BitmapFactory.Options が非常に有効です。 日はそんなAPIで何が設定出来るのか整理してみました。 設定一覧 inDensity bitmapのpixelを調整するらしいけど、どう使っていいかよく分からない。 inDither trueの場合、ノイズ加工する。 inInputShareable inPurgeableがtrueの時のみ有効となります。 trueの場合、bitmapを値渡しする。 inJustDecodeBounds trueの場合、bitmapの読み込みを行わずステータス情報のみを取得する。 例えば画像サイズなど。 inPreferredConfig bitmapを読み込む歳のファイルフォーマットを指定できる。 例えばBitmap.Config.ARGB_8888と指定すれば、ARGBでそれぞれ0〜255

    BitmapFactory.Options の使い方   の説明をちゃんとしたかったな... - hyoromoのブログ
    kkeisuke
    kkeisuke 2010/10/02
    Android
  • Android Pad対応方法 - hyoromoのブログ

    今までいくつかのPadを見てきましたが、今のところの共通点は以下のようになります。 Density Dpi が 160dpi(mdip)以下 解像度は480×800以上 この事から分かるように、dpiが低く解像度を高くすることで携帯端末よりも大きいディスプレイを快適に使うための工夫がなされています。 ただし、この工夫のせいで来 hdpi 扱いになるはずが mdpi として扱われるため。 中解像度用の画像が使われ、見栄えが悪くなるコンテンツがあります。 今回はそういったコンテンツのために、Android Pad で高解像度扱いで画像を表示さえる方法を書き残します。 必要な情報取得 端末のdpiとスクリーンサイズの最小値を取得します。 WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_S

    Android Pad対応方法 - hyoromoのブログ
    kkeisuke
    kkeisuke 2010/09/28
    mdpi 中解像度用の画像が使われ、見栄えが悪くなる
  • リソースの共有 〜ピクチャー共有したいんです〜 - hyoromoのブログ

    Androidでリソースを共有すると言えばコンテンツプロパイダがありますが、今回はsharedUserIdを使っての共有方法を整理しました。 今回やることの図解 概念 AndroidのベースとなっているのはLinuxカーネルです。 Linux文化を継承した権限構成になっており、app毎に割り振られているユーザーIDが割り振られます*1。 今回は共有IDを作り、apkの権限に加えて同じID同士で参照し合えるようにします*2。 サンプルコード構成 apk1側の(apk1と描かれた)画像とapk2側の(apk2と描かれた)画像を、apk1側のプログラムで一緒に表示させます。 apk2側のコード リソースを読まれる側のコード AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="htt

    リソースの共有 〜ピクチャー共有したいんです〜 - hyoromoのブログ
    kkeisuke
    kkeisuke 2010/09/18
    Android sharedUserId 別々の apk で res 共有
  • ショートカットのアプリ作成方法 - hyoromoのブログ

    "ホーム画面に追加" にある "ショートカット" にリストアップされる「ショートカットのアプリ作成方法」を簡単にまとめます。 AndroidManifest actionをショートカット特有のモノにすればショートカット一覧に並びます。 <activity android:name=".ShortcutActivity" > <intent-filter> <action android:name="android.intent.action.CREATE_SHORTCUT" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> Activity ショートカットの中身はIntentなのでIntentを作成することになるのですが、やり方は若干ややこしいです。 //

    ショートカットのアプリ作成方法 - hyoromoのブログ
    kkeisuke
    kkeisuke 2010/09/12
    Android
  • JN-DK01ベース端末のバッテリー情報について - hyoromoのブログ

    素のAndroidの場合、内部で保持しているバッテリー情報は1%刻みで持っていますが。JN-DK01ベースの端末*1の場合は10%刻みで保持しているようです。 保持の仕方も、例えばバッテリー残量が80%から70%になった場合と60%から70%になった場合で、内部に保持されるデータが同じになります。70%を保持してる際に、71%から70%になろうが69%から70%になろうが内部保持データは変わりません。 一見自然に見えますが、つまり内部的にバッテリー残量が70%を示す場合、実際の残量範囲が79%から61%までと幅広いです。 妥協しながら範囲取得 10%刻みの範囲を判断するには、過去バッテリー残量を保持すして判断するしかなさそうです。 バッテリー範囲 コールされるバッテリー残量 過去バッテリー残量 100-090 100 - 100-090 090 080 090-080 090 100 09

    JN-DK01ベース端末のバッテリー情報について - hyoromoのブログ
    kkeisuke
    kkeisuke 2010/07/23
    現時点ではIS01とLYNX
  • IntentのCategoryとExtraとFlagの一覧表を作ってみたよ - hyoromoのブログ

    前回までにActivityとBroadcastのActionに関する振る舞い整理してきました。 今回は定義が広い振る舞いのフィルタリング方法である Category を整理します。 また、それ以外にも Intent に投げる際に情報を付加させる Extra や、Intent を投げた先で起動される Activity がどのように起動するかを指定できる Flag も整理します。 今回は特に意味不明な箇所が多く、正直Flagに関してはまったく分かりませんでした。 自分でも実際に検証してみますが、何かご指摘頂けるようでしたら、お願いします。 Categories 『Actionの振る舞いを明確にするためのCategory』を指定する方法を一覧表。 これらは AndroidManifest.xml ファイル内のタグ内で指定します。また、ソース内で Intent#addCategory(String

    IntentのCategoryとExtraとFlagの一覧表を作ってみたよ - hyoromoのブログ
    kkeisuke
    kkeisuke 2010/07/06
    Android