アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

2019-01-01から1年間の記事一覧

AndroidStudio3.5からのNDKビルドの変更点

exoPlayer flac extensionを使用するプロジェクトをいつも使っているPCではない別のPCでビルドしようとしたら、ビルドできなくなっていました。ということでNDK周りを調べてみました。 エラー文 Execution failed for task ':exoplayer-extension-flac:strip…

【Android】ViewBindingの使用から応用

ViewBindingがもうすぐStableになるので使用してみました。ActivityやFragmentの最新版との組み合わせを書いていきます。 公式ドキュメントはこちらになります。 https://developer.android.com/topic/libraries/view-binding 使用準備 build.gradleにViewBi…

Bitmapから暗黙的Intentでのシェアまで

Android Q時点のコードです。 Bitmap->Uri class ImageRepository( private val application: Application ) { private val IMAGE_PATH = "image" private val imagePath = application.getFileStreamPath(IMAGE_PATH).apply { // シェアのために一時的に保…

mitmproxyで通信を書き換える

アプリをテストする際にテストサーバーが用意されていないと通信を書き換えるなどしなければなりません。 そのような時にmitmproxyを使います。 mitmproxyの利点 Pythonでスクリプトを書くことができます。GUIとか独自の形式とかではなくプログラムを書くこ…

KotlinをGradleでビルド

kts編 https://matsudamper.hatenablog.com/entry/2021/11/27/070504 gradleでビルドする時に以下のように書けというのが多いですが動かなかったので調べました。 既存コード jar { manifest { attributes 'Main-Class': 'net.matsuda.MainKt' } from { conf…

IntelliJ内でJDKのインストールを完結する

プラグイン 「JB SDK Bintray Downloader」プラグインを使います。 使い方 Shift二回連打かCtrl + Shift + Aで「Get JB SDK」と検索して実行します。 バージョンを選択してダウンロード、インストールを実行します。 設定 Project Structureにて設定を行いま…

【Python】No module named keras.preprocessing.image

エディタ上では依存が解決できているが、実行時にエラーになる。 コードジャンプしていくと、内部でPILを読んでいるようなのでPILを入れる。 Anacondaを使っているので。 conda install -c anaconda pillow

PyTorchインストールでSafetyError: The package for cudatoolkit

問題 こんなエラー。cuda10.1入れてるのが良くないのかなとか思って直したりした。 pears to be corrupted. The path 'Library/bin/cublas64_100.dll' has an incorrect size. reported size: 67318784 bytes actual size: 37617664 bytes 解決 けどこれで解…

【Android】Room 2.1の更新点

I/Oセッション youtu.be Coroutineのサポート 関数にsuspendと付ける事でCancelableなコードが生成されるようになります。 全文検索のサポート SQLiteの拡張機能である、全文検索を利用できるようになります。 EntityにFTS4拡張と使用することを書きます。 …

Android Studio 3.5からのDataBindingの進化、3.6からのViewBinding

Viewへのアクセス方法が進化していきます。 I/Oセッション youtu.be DataBinding Annotation Processingの速度が20%向上 Incremental Annotation Processing android.databinding.incremental=true で増分コンパイルが有効化される。 XMLの即時反映 XMLに追…

【Android】SavedStateHandleでViewModelをプロセスキルを乗り越えるようにする

I/Oセッション youtu.be ViewModel このようなカウントするLiveDataがあります。 class MainViewModel : ViewModel() { val counter = MutableLiveData(0) } 押したら1増やします。 ViewModelを使用すれば画面回転を乗り越えられます。 当たり前ですが、プロ…

開発環境(書いている途中)

IDE VS Code とりあえず色々開ける。 IntelliJ Git 入力補完を行う 「Git補完をしらない」「git statusを1日100回は使う」そんなあなたに朗報【git-completionとgit-prompt】 - Qiita

【Android】DerInputStream.getLength(): lengthTag=109, too big.

DerInputStream.getLength(): lengthTag=109, too big. にてビルドはできるものの署名ができず、インストールできない。 AndroidXへ移行した際に発生した。ただ、環境によっては問題が出なかったので関係あるか不明。 gradle-4.10.1→gradle-4.10.2にすること…

【Android Q】Beta2→3 READ/WRITE_EXTERNAL_STORAGEの復活

以下が消えて - READ_EXTERNAL_STORAGE - WRITE_EXTERNAL_STORAGE 以下が出てきたが - READ_MEDIA_IMAGES - READ_MEDIA_AUDIO - READ_MEDIA_VIDEO 「READ_EXTERNAL_STORAGE」、「WRITE_EXTERNAL_STORAGE」が復活した。 ただ、Scoped Storageが宛先になるよう…

【Windows】PythonでTensorFlow物体検出メモ

最初はJavaをしようとしたけど無理だった。まずサンプルが無いしOpenCVとか使うにも不便。動的型付けとか無理だけど使うしか無い。 インストール Anacondaを使用 cudaとcudnnが新しいと動かないことがある。 使用したバージョン cuda version : 9.0.176 cudn…

【Android】PreviewのVERSION_CODESとSDK_INT

VERSION_CODES AndroidQ Preview2のコード public static class VERSION_CODES { public static final int BASE = 1; public static final int BASE_1_1 = 2; public static final int CUPCAKE = 3; public static final int CUR_DEVELOPMENT = 10000; publi…

Kotlin Contractsが必要な場面に遭遇した

Kotlin Contractsあまり理解していなかったのと、自分で書く必要があるとは思わなかったのでこんな所で使うんだなと思って書きました。 まずこのようなコードがあります。 時間を計測するKotlinのスタンダードライブラリの関数です。 public inline fun meas…

【Windows】BoostをビルドしてCMakeで使用する。

Boostのビルドと使用です。 今回は1.70.0をビルドしました。 CMakeのバージョンはCLionに入っている3.13.2を使用しました。 理解しているわけではなく、なんか動いた程度の記事です。 Boost C++ Libraries ビルド 「bootstrap.bat」を実行します。 「b2.exe…

【Windows】C++知識なしから始めるOpenCVのビルドから使用まで

※プロダクトとかではなくとりあえず動けばいい人用 やること cuda入りのOpenCVのビルド Javaでの使用(ついで) CLionでC++での使用 ダウンロード OpenCV GitHub - opencv/opencv: Open Source Computer Vision Library OpenCV's extra modules GitHub - openc…

【Android】リソースのプレフィックスをモジュールごとに強制する

モジュールが違っていてもリソースIDは被ってはいけない。 モジュールが違えばレイアウトID(ファイル名)を被らせる事はできてしまう。 以下をGradleに記述する事で警告を出す事ができる。 android { resourcePrefix 'modulename_' } たまたまHyperionのバグ…

【Android】CustomViewでPreviewが正常に生成されない場合に

CustomViewを作ったことがある、更にCustomViewの中でonDrawなどを書いた事があればわかるのですが、その内容はレイアウトエディタに反映されます。addViewしても反映されます。つまりAndroidStudioがCustomView内の処理を走らせてレイアウトや装飾を確認し…

RecyclerViewのスクロール後にクリックできなくなる問題

問題 以下の動画のように末尾や先頭にスクロールした後に一回クリックイベントが効かなくなります。しかし、暫く待てばクリックすることができます。 これはGooglePayアプリでも発生しています。 再現環境 自分の場合はBottomSheetにFragmentとしてRecyclerV…

【Android】VectorDrawable AnimatedVectorDrawableを理解する

VectorDrawable、AnimatedVectorDrawableってなんなの。SVGから変換できるけどそれとは何が違うのって思いました。 SVGとVectorDrawable なので何が違うか確認しましょう。 適当に大きさの違う円形と楕円形のSVGを作ったものとそれをAnimatedVectorDrawable…

AndroidXプロジェクトでExoPlayer flac extensionを使う

アノテーションとかがサポートライブラリの方を参照しようとして参照できなくてエラーが出ます。 トップレベルのgradle.propertiesは以下のようになっています。 android.enableJetifier=true android.useAndroidX=true 書き換えやってくれないの?って思い…