Learn to Live and Live to Learn

IT(たまにビジネス)に関する記事を読んで、考えて、使ってみたことをまとめる場。

2017-04-01から1ヶ月間の記事一覧

データベースの中身を見る(Android)

データベースの中身を誰でも見られる場所に移動する run-asをつけるとアプリユーザ(アプリ自身)としてコマンドを実行できます。 しかし、データベースの中身を見たいのは一般ユーザなので、run-asした状態で一般ユーザの見られるSDCardにデータベースをコ…

APK署名スキームv2を使い、インストール速度を向上させる(Android N対応)

Android Nから導入された署名スキームv2ではAPKの検証速度が大幅に向上している Android 7.0 では、APK 署名スキーム v2 というアプリのインストール時間を高速化したり、APK ファイルに無許可の変更が行われないようにしたりする新しいアプリ署名スキームが…

影響力の武器 2.コミットメントと一貫性

影響力の武器 1. 返報性 - Learn to Live and Live to Learnの続きです。 一度コミットした立場を取り続けようとする一貫性の原理 私たちは言動を一貫したものにしたい心理を持っています。 なぜなら 一度コミットしたことで、自分はコミットしたような人間…

ManifestMergerのログを見てみる

ManifestMergerとは Android Gradle Pluginが提供するビルド時に自身のマニフェストファイルやライブラリプロジェクトのマニフェストファイルをマージしてくれる機能です。 だから、私たちはbuild.gradleに数行追加するだけで、ライブラリのダウンロードから…

影響力の武器 1. 返報性

ロバート・B・チャルディーニ博士の『影響力の武器』を読んでいるのですが、良書だと思うので内容をまとめたいと思います 人間は固定的動作パターンをとることが多々ある 固定的動作パターンとは、信号刺激に対してとる決まった行動パターンです。 例えば、…

アプリのOpenSSLバージョンを確認する

OpenSSLのバージョン確認は必要 脆弱性があるとお客様を危険に晒すことになるので大事なことです。 もちろんGoogle PlayのリリースではセキュリティスキャンとしてOpenSSLのバージョン確認も行われています。 アプリの OpenSSL の脆弱性への対処方法 - Googl…

aarをローカルから読み込む

概要 aarをローカルから読み込む方法を知った(教えていただいた)ので、メモしときます。 ちなみにaarとは Android ARchiveの略です。 Androidリソースやマニフェストファイルを含めることのできるAndroidライブラリです。 作り方としては、[File] > [New] …

Material Design 1.マテリアルデザインとは何か

同期のデザイナーの子にマテリアルデザインのことを聞かれた時、答えられなくて悔しかったのでw 公式ドキュメントを読みつつ、マテリアルデザインについてまとめていきたいと思います。(全10回くらいの予定) デザインの歴史 スキューモーフィズムからマテ…

AtomでMarkdown記法時に普通に改行する(Atom v1.14.1)

概要 最近メモとしてAtomを使っています。 Control + Shift + Mを押すと、左カラムに入力しつつ右カラムでリアルタイムプレビューできてとても便利です。 しかし半角スペース2つ打たないと改行できないのは不便。。他に改行を使う予定もないし、普通に改行さ…

fatal: Commit <コミットID> is a merge but no -m option was given.

git revert <コミットID>ができない こんなエラーが出ました。 $ git revert f780e4d fatal: Commit f780e4d is a merge but no -m option was given. # コミット「f780e4d」はマージされてるけど、`-m`オプションが付与されてないよ。 マージコミットをリバ…

Android オプションを付けてコンパイルする

概要 ビルド時にオプションを付けてコンパイルしてね,というエラーが出ました. 注意:一部の入力ファイルは非推奨のAPIを使用またはオーバーライドしています。 注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。 解決方法 b…

ビルド時にDuplicate files copied

概要 以下のエラーでビルドが失敗しました. Duplicate files copied in APK META-INF/LICENSE.txt 原因 依存ライブラリに指定した外部jarファイルを内部で展開した時に複数のjarファイルでリソースファイルなどのパスが競合してエラーになっているようです…

Android N データセーバ対応

データセーバとは Android Nで導入された機能です. ユーザーが [Settings] でデータセーバーを有効にし、端末が従量制課金ネットワークに接続されている場合、システムはバックグラウンドでのデータ使用をブロックし、フォアグラウンドでのデータ使用をなる…

Sources for 'Android API xx Platform' not found.

概要 Build.javaを開くとSources for 'Android API 22(1) Platform' not found.というエラーが出てきました. インストールしても直らない (インストールされているかは,Tools > Android > SDK Manager > Show Pachage Details > Sources for Android xxが…

Android Spinner#onItemSelectedが起動時にも実行されることへの対策

Spinner#onItemSelected 初回起動時もSelectされたとして反応してしまいます. 初回は処理を避けたい時の対応方法を紹介します. 実装 よくある方法にSpinnerがフォーカス可能かをフラグとして使うものがあります. falseが初回起動,trueがそれ以降です. …

Android Web to Appする(アプリ編)

App Indexing AndroidにはApp Indexingという仕組みがあります. AppIndexingとは、ウェブページURLやキーワードとアプリの特定画面へのディープリンクを紐付け、Google検索結果から直接アプリの特定画面を起動させるための仕組みです。 by Qiita ウェブもア…

Android Homeキーのタップを検知する

dispatchKeyEventでいけるかなと思っていましが,これはハードキー時代の栄光のようです. Homeキーのタップを検知する方法には 1). onUserLeaveHint 2). BroadcastReceiver の2つあります. 1). はIntentで他アプリに遷移するときも呼ばれるので注意が必要…

this version of Android Studio is incompatible with the Gradle Plugin used. Try disabling Instant Run

エラー内容 git cloneしてきたアプリをrunしようとしたら,こんなメッセージが出てヒーってなったんですが,あっさり解決できたんで方法を記したいと思います. this version of Android Studio is incompatible with the Gradle Plugin used. Try disabling…

App ShortcutsのStatic Shortcutsを実装してみる

App Shortcutsとは Android 7.1(SDK 25)で追加されたショートカットを作成する機能です. アプリを長押しすると,ショートカットの機能が出てきます. 吹き出しをタップすることで指定したintentを起動できます. 図1: ショートカット(左上) ショートカ…