こんにちは。今日も元気に Android アプリの開発をしています、横幕です。 最近は、アプリで画像処理をゴリゴリとするのが楽しくなってきました。端末も進化してきており、メモリ搭載量も飛躍的に増えてきているので、そろそろ 64 bit 対応の空気を感じつつ有ります。 さて、私はこれまで、4 つの Android アプリ開発プロジェクトに携わってきました。mixi 公式クライアントアプリ、mixi コミュニティ公式クライアントアプリ、そして今現在はノハナにジョインして、フォトブックアプリと年賀状アプリに携わっています。 新卒入社以来配属から2年半ほど経ち、その中で得た知見を、Android-Device-Compatibility や AndroidTraining といった形で公開してきましたが、今回新たに、Android アプリを開発する中でよく遭遇する、あるあるネタを詰め込んだ Ama
.apkからソースコードを取り出す方法です。 # バッチの実行コマンドなどは説明を簡略化するためにフルパスで指定しています。 手順1:.apkからclasses.dexを取得 逆コンパイルするには、まずclasses.dexが必要です。 逆コンパイルしたいapkを取得して、zip解凍ソフトで解凍してください。 # よくわからない場合は拡張子をapkからzipに変えてダブルクリックで解凍。 (今回はCドライブ直下に解凍しました) 手順2:dex2jarで.dex→.class変換 手順1で解凍したフォルダの中にclasses.dexがあると思います。 逆コンパイルするにはclasses.dexを.classファイル形式に変換します。 .dex→.class変換にはdex2jarというツールを使います。 dex2jarツールは下記サイトにあります。 http://code.google.com
Androidで使われるpxはピクセル、dpは密度に依存しない仮想単位で、変換はdp×getDisplayMetrics().density=px。これを公式的に覚えておけば、実用的にはこと足ります。 しかし、もう一歩掘り下げて、解像度と密度の関係、物理サイズとdpiの関係、ピクセルとポイントの関係などをもう一度整理しなおしたいという人は続きを読んでみてください。 pxとdpについておさらい pxはピクセルの意味です。プログラマにとっては一番馴染みがある単位でしょう。 dpはdipとも言い、Density Independent Pixelの略です。そのまま日本語にすると「密度に依存しないピクセル」となります。 dpはpxに対する比率として定義されていて、DisplayMetricsクラスのdensityというフィールドで参照できます。 依存しない、と言われれば、まーなんとなくデバイスや解
わかった!お金借りるならでお金借りる審査通らない理由… わけもなく嫌な気持ちになってしまう人が存在します。 出来が寄ってきたらムカムカして、お金借りる審査通らない理由なので、マトモに対応すらできず、お金借りる審査通らない理由に冷たい対応をしてしまいます。お金借りるならに冷静になり、悔やむものの、以降だったら、嫌だということで頭がいっぱいになってしまいます。 少額融資の多様さからいえば、好きになれない人がいるのも当たり前なのでしょう。 お金借りるならを好きになるのは無理難題といっても過言ではなく、急変をなくしてしまえないので、困っています。 お金借りる審査通らない理由に考えるのであれば、客観的にはそんなに悪い人でもありませんから、お金借りる審査通らない理由に限り、私はおかしいと思います。たまたまテレビ中継などを目にすると、入出金可能への参加を目指す人があまりにも多くてちょっと呆れてしまいそう
目次1 プロジェクトの作成2 UIの作成3 ローカルHTMLファイルの作成とプロジェクトへの追加3.1 ローカルHTMLファイルの作成3.1.1 menu.html3.2 HTMLファイルのプロジェクトへの追加4 コード4.1 MainActivity.java4.2 解説4.2.1 注意5 実行結果6 応用編6.1 プロジェクトの作成6.2 UIの作成6.3 コード6.3.1 メニュー用HTMLファイル6.3.1.1 menu.html6.3.2 コンテンツHTMLファイル6.3.2.1 news.html6.3.2.2 weather.html6.3.2.3 shopping.html6.3.3 アプリケーション本体6.3.3.1 MainActivity.java6.3.3.1.1 解説6.3.3.2 CustomWebViewClient.java6.3.3.2.1 解説6.4 実
Android Studio ベースの内容に改訂。 Android Studio 1.0.2 Android SDK 5.0.1 (API21) Play Services 6.5.87 参考サイト 手順 Play Services をプロジェクトに追加 メニュー File > Project Structure... を開く。 Dependencies タブ下の + をクリックし、Library dependency... を選択。 play-services を選択して OK レイアウトの編集 activity_main.xml を開く。 Palette にある <fragment> をクリック後、MapFragment を選択。 Properties の Id を map に変更。 layout:width と layout:height を match_parent に変更。 コー
WebView の setDownloadListener に DownloadListener()をくっつけたり、 イベントをひろってAsyncTaskで通信したりしましたが、コレが一番よかった。 ブロードキャストレシーバーを設定し、DownloadManagerからの通知を受け取る流れです。 レイアウト <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"
開きたいpdfファイルがローカルなファイルシステム上にある場合。 File file = ("ファイルのパス"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://"+file.getPath()), "application/pdf"); startActivity(intent); 開きたいpdfファイルがインターネット上にある場合。 String url = "pdfファイルのurl"; Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("http://docs.google.com/viewer?url=" + url), "text/html")
I'm developping an Android application filtering the requests (with a white list) and using a custom SSLSocketFactory. For this, I've developed a custom WebViewClient and I have overridden the shouldInterceptRequest method. I can filter and use my SocketFactory with the GET requests but I can't intercept the POST requests. So, is there a way to intercept the POST requests in a WebView ? Here is th
WebViewClientを設定してロード時の処理を定義する WebView内ページのリダイレクトを判定する ユーザーエージェントを設定する JavaScriptを有効化し、WebView内JavaScriptとJavaを連携する URL別にWebView/標準ブラウザを判別する 端末の戻るボタンで1ページ戻る おまけ(goBack()で戻れない!?) 準備 WebViewを使用するため、AndroidManifestに以下のパーミッションを追加するのを忘れないように。 AndroidManifest.xml android.permission.INTERNET WebViewClientを設定してロード時の処理を定義する java //WebViewインスタンスの生成 WebView webview = new WebView(this); // WebViewClientの設定 we
WebView を通常のブラウザとして使いたいと思って利用したときに、すぐに直感で期待した動作と異なる動きをすることに気づきます。 表示された HTML ページをクリックして、次のページへジャンプするとき、新しくブラウザが開いてしまうのです。 同じ WebView 内に次の新しいページのコンテンツをロードするにはどうしたらよいでしょうか。 WebView - 既定で新しいブラウザが開く WebView を配置して http://www.google.com/ をロードします。そして、検索項目を入力して検索します。 試しに "webview" と入力して・・・ 検索開始。 うまく検索できたようにみえますが、しかしよくみると、これは元のアプリケーションではなく、新しくブラウザが開いています。 もとのアプリケーションに画面を切り替えると、次のように元の検索開始前の状態のままです。 元々新しくブラ
Android で ActionBar に Tab を使って 2番目の Tab に WebView を貼り付けると、WebView の中のリンクをタップしてもタップされたアイテムが反転表示されない。 で、その際にログには「Should not happen: no rect-based-test nodes found」ってエラーが出てる。 前から気になっていたのだけど、やっと解決する方法が見つかったのでメモ。 (ただし、かな〜りレアケースっぽいので他の人の参考にはならないと思う。) Eclipse で新しい Android Application Project を作って、その際に Minimum Required SDK を API 11 にして Navigation Type を Fixed Tabs + Swipe にする。 すると、タプが 3つあってスワイプでそれぞれを変更できる
I currently have my application set up with a ListFragment on the left and a DetailsFragment on the right (similar to the layout on the tablet below). On the details fragment (fragment next to the list) I have a goto deal button, which when pressed should replace the detailsFragment with a WebViewFragment. The problem I am having is that when trying to load a url in the webviewfragment the WebView
今回は大量のデータを表示したり、positionを指定してジャンプできるなど、何かと便利なクラスなGridVewのパフォーマンスを上げる方法を2回に渡って紹介します。 GridViewはListViewの兄弟分でAbsListViewの派生クラスになりますので、一列か複数行かの違いのみと思ってよいと思います。 仕組みとして、表示している領域の数分のVewだけを生成するという特性があります。 つまり、大量のデータが存在しても、描画にかかるコストは見えている領域のみとなります。 逆に言うとスクロールをしていて見えていない箇所を描画する際に新たに描画の為のロジックが走ることになるため、スムーズなスクロールが難しくなりがちです。 これはFlexを知っている方ならご存知かと思いますが、Flex4.5でいうListコンポーネント×ItemRendererと同じような仕組みになります。 ただその仕組みの
LruCache とは LruCache はアプリ上にメモリキャッシュを作るためのクラスです。Android 3.1 (APIレベル12) から導入されましたが Support Package に互換クラスがあるので Android 1.6 (APIレベル4) から使うことができます。 今回は画像を GridView で表示するアイテムをメモリキャッシュしてみたいと思います! LruCache の使いかた 1. 最大キャッシュサイズを決める まずはメモリにキャッシュする最大サイズを決めます。この最大サイズをいくつにするかは対応するバージョンやアプリが他で使用しているメモリ量によるので LruCache を使用する場面で適切な値を決めるようにします。今回はサンプルということで 10 MB としました。 2. LruCache をインスタンス化する 次に LruCache をインスタンス化しま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く