365連休

にわかのandroidとかの開発メモ。

Android

Androidで許可が必要なパーミッション(権限)の一覧と見分け方

実行時に許可を取るパーミッションってどれだっけ?

Android Studio 3.6 ワーカースレッドとしてHandlerThreadを使う

Androidの非同期処理にAsyncTaskやExecutorを使う事があるが、ワーカースレッドを作りworkerHandler.post()で実行する方法もある。 最近のマイブーム。 HandlerThreadはThreadを継承しているため、newしてstart()すれば、別スレッドでお手軽非同期処理ができ…

【恐怖】古いAdMob SDKを使用していると広告が配信されなくなる

古いAdMob SDKで広告が配信されなくなるので注意しましょう!

Google Paly データセーフティフォームとAdMob (メモ

Google Playではデータセーフティというものを導入した。 アプリでユーザにかかわる情報をどのように取り扱うかといったことを、事前にユーザに提示しようという試み。 アプリ開発者は、利用している各種SDKも含めて申告する必要がある。 以下は、収益化にサ…

FlexBoxのリポジトリがJCenterからGoogle Mavenへ

JCenterの廃止により、早期移行を個人的に熱望していたFlexBoxライブラリですが、ついにGoogle Mavenリポジトリへ移行されました。 github.com github.com Gladle書き方 2.0.1以前 jcenter() implementation 'com.google.android:flexbox:2.0.1' 移行後 goog…

日々煩雑になっていくAndroidのストレージアクセスについての考察

JavaのFileクラスによるフルアクセス ->SDアクセス煩雑化 ->Fileインテント禁止 ->MediaStoreを介さないストレージアクセスの煩雑化(ふぁっ!?) ->対象範囲別ストレージ(ふぁっ!?ふぁっ!?) ->MANAGE_EXTERNAL_STORAGE(アッー!) ->MANAGE_EXTERNAL_STORAGE…

Consent SDK -> UMP SDK ( User Messaging Platform SDK)

Googleの広告配信時のGDPR系の同意情報の取得に使用する関連サービスとして、Consent SDKが提供されているが、これは非推奨となる模様。 Googleの広告各種ヘルプではファンディングチョイス(Funding Choices)とUMP SDK( User Messaging Platform SDK )を使用…

Android Studio 3.6 Navigationで複数画面のPreferenceFragmentを使用する方法

設定.xmlのPreferenceタグにFragmentを指定すると別なPreferenceFragmentを起動できるが、Navigationを使用している場合うまく動作しない。 ちゃんと確認していないが、Navigationと複数画面のPreferenceの食べ合わせは非推奨らしい。 そこで、Navigationの…

Android Studio 3.6 ディレクトリを表すUriオブジェクトがあるか?

ディレクトリを表すUriオブジェクトはあります。

Android Studio 3.6 SavedStateViewModelFactoryがリフレクションするViewModelのコンストラクタ

前書き 筆者がぽんこつなため、この記事は一部不正確な可能性があります。ご了承ください。 前提条件 //build.gradle implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' SavedStateViewModelFactoryって? 画面回転時とかの再生成に対応したV…

Android Studio 3.5 直列処理Executorのサンプル

Executorは別スレッドで非同期処理をいくつも実行するのに役立つ。 ThreadPoolExecutorを使うとスレッドを再利用しつつ非同期処理を連続して行える。 Executor executor = new ThreadPoolExecutor( corePoolSize, //スレッド数 maximumPoolSize, //最大スレ…

Android Studio 3.5 ApplicationクラスのライフサイクルとHandler#postの挙動

Applicationクラスのライフサイクルめも 経緯 new Handler().postってアプリを離れても動いてる!!!!???? Applicationクラスのライフサイクルメソッド public void onCreate() アプリケーション起動時 public void onTerminate() エミュレート環境で…

Android 暗号化アプリとアメリカ輸出規制

暗号化したろっ!⇒アメリカの輸出規制引っかかるけど、HTTPSとかみんな使ってるし既存技術ならOK?⇒EAR原文調査

Android 10 Q 対象範囲別ストレージ(Scoped Storage)とは

対象範囲別ストレージに関するAndroid Developersドキュメントの転載や解釈、および英語版ドキュメントの意訳。

FragmentDialogをActivityやFragmentから呼び出す

ダイアログを表示する ↓ WindowLeaked!! ↓ DialogFragmentを導入 ↓ Fragmentから呼び出すとListenerで通知できない ↓ Fragmentに対応するとActivityへ通知できない ↓ 両方に対応する? ↓ ↓ WindowLeaked!!しても大勢に影響ない? ↓ ↓ 夜が明けるまで死に続け…

ピンチ操作による拡大縮小やドラッグ移動ができるImageViewの実装方法(Android Studio)

①ピンチやドラッグを検出するOnTouchListenerを作る。②Matrixクラスのお勉強。③ピンチ操作に応じて座標やスケールを変更して描画するカスタムImageView。

Android Studio 3.5.0 のナビゲーションドロワーアクティビティを読み解く

Android Studio 3.5でアクティビティの新規作成から選べるテンプレートの「Navigation Drawer Activity」を読み解く。ついでにテンプレートのバグ退治もします。

Get started with the Navigation componentの意訳

developer.android.com このトピックでは、ナビゲーションコンポーネントを設定して操作する方法について説明する。ナビゲーションコンポーネントの概要については、「Navigation overview En 意訳」を参照すること。 環境設定 ヒント: ナビゲーションを使用…

Principles of navigationの意訳

developer.android.com 異なる画面とアプリ間のナビゲーションは、ユーザエクスペリエンスの中心である。 次の原則は、アプリ間で一貫性があり直観的なユーザエクスペリエンスの基準を設定する。 ナビゲーションコンポーネントは、既定でこれらの原則を実装…

Navigationの意訳

developer.android.com ナビゲーションとは、ユーザがアプリ上で移動または戻る操作を指す。 Android Jetpachのナビゲーションコンポーネントは、単純なボタンクリックではなく、アプリバーやナビゲーションドロワーなどの複雑なナビゲーションの実装を提供…

DrawerLayout意訳メモ - Androidリファレンス

developer.android.com AndroidXライブラリ:androidx.drawerlayout.widget.DrawerLayout 旧サポートライブラリ:android.support.v4.widget.DrawerLayout DrawerLayoutはウィンドウの最上位コンテナであり、画面の両端から"ドロワー"ビューを引き出すことを…

Animation resourcesの意訳

developer.android.com アニメーションリソースは2種類のアニメーションを定義できる。 Property Animation プロパティアニメーション Animator(Reference)を使用して、一定時間にわたってオブジェクトのプロパティ値を変更するアニメーションを作成する。 V…

Resource types overviewの意訳

developer.android.com このセクションでは、リソースディレクトリ(res/)で指定できるリソースタイプの使い方、フォーマット、決まり事について説明する。 Animation Resources アニメーションリソース En 意訳アニメーションを定義する。Tweenアニメーショ…

Test your app with pseudolocalesの意訳

developer.android.com 擬似ロケールでアプリをテストできるらしい。 擬似ロケールを有効にするには、 build.gradle android { ... buildTypes { debug { pseudoLocalesEnabled true } } で、ビルドして、実行。 デバイスのシステムの言語設定から擬似ロケー…

Localize your appの意訳

developer.android.com Androidは多くの地域の多くのデバイスで実行される。 多くのユーザに手に取ってもらうには、テキスト、オーディオ、数字、通貨、そして画像をアプリが使用されるロケールに適合させる。 このドキュメントでは、Androidアプリをローカ…

Inline complex XML resourcesの意訳

developer.android.com 特定のリソースは複数のXMLにより構成される。次の例はアニメーションベクタードローワブルで、描画可能な「ベクタードローワブル」と「アニメーション」をカプセル化したリソースである。少なくとも3つのXMLファイルが必要である。 r…

Android開発者向けドキュメントを意訳してみる。

developer.android.comの翻訳が足りないとこを意訳してみる。

【解決】java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" on path: DexPathList[[zip file "/data/app/your.pack.name-1/base.apk"],中略/lib/arm64, /system/lib64, /vendor/lib64]]

「Androidアプリの開発中は問題無いが、Play Storeからインストールすると初回起動時のみ異常終了する件」の解決編です。 Crashes the first time the app starts. When installing from PlayStore. 前提条件 Gradle 5.1.1 Android Gradle plugin 3.4.0 minS…

Android Studio 3.4でビルド後にアプリの起動(Instant Run)に失敗する

ある日突然、ビルド&実行ができなくなる。 ググったらこういうケースがあるみたいです。 ログにはresources_apがFileNotFoundExceptionと出てます。 確認したら、実際ファイルはありませんでした。 正常に動いているプロジェクトには存在しています。 なぜか…

【事案】Androidアプリをストアからインストールすると初回起動時のみ異常終了する(# ゚Д゚)

【解決】java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" on path: DexPathList[[zip file "/data/app/your.pack.name-1/base.apk"],中略/lib/arm64, /system/lib64, /ve…