Android Studioを使い始めて1年以上になるが、「習うより慣れろ」流である。 特に重要なアプリを作っているわけではないので、誤解により誤動作しても大したことはない。 直せば済む。 しかし、滅多に使わないことはすぐに忘れ、また、一からの調べなおしは効率が悪いので、 記録を残しておきたい。
AndroidManifest.xmlで android:largeHeap="true" としたときの アプリの最大メモリ使用量は現在使用中のスマホでは 512MB であるが、 この数値は機種依存のようである。 大容量の主記憶を備えたスマホであればもっと大きな値になるのかも知れない。
<application android:largeHeap="true" ... ...>
Andorid Studioとしては Dolphinからスタートして、Bumble bee、Electic eel とバージョンアップしてきたが、 2023年4月中旬になって、Dolphin に戻した。
APIレベルは 31、32、33 をインストールしている。
地図アプリMapの build.gradle の targetSDK は 32 に設定している。 33 に上げた方がいいかもしれないが、支障がない限りこの状態を続ける。
確か、厳密には SVG ではなく、Google独自のはずだが、SVGと同じようなベクトルアイコンが使用できる。 pngに比べて、色や大きさの変更が簡単である。
drawable を右クリック [New]-[Vector Asset] で Clip Art をクリックすると、アイコンの一覧が表示される。 ここで、好みのものを選べばよい。
下に、星形アイコンを示す。height、width は元の 24db を 28db に変えた。tint は元は "#000000" だったと思う。 他に倣って、"?attr/colorControlNormal" に変えた。
<vector android:height="28dp" android:tint="?attr/colorControlNormal" android:viewportHeight="24" android:viewportWidth="24" android:width="28dp" xmlns:android="http://schemas.android.com/apk/res/android"> <path android:fillColor="@android:color/white" android:pathData="M22,9.24l-7.19,-0.62L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21 12,17.27 18.18,21l-1.63,-7.03L22,9.24zM12,15.4l-3.76,2.27 1,-4.28 -3.32,-2.88 4.38,-0.38L12,6.1l1.71,4.04 4.38,0.38 -3.32,2.88 1,4.28L12,15.4z"/> </vector>
ネット検索すると、よくあることのようだ。
Andoroid Studio をアップデートした。スマホを再起動したが、状況は変わらなかった。
WiMAXを ポケットWi-Fiに変えてみたが、状況は変わらなかった。
WiMAXはパソコンでも切れていることが以前よりは多くなった。
やはり、GPS回りのプログラム開発が厄介である。わずか1年あまりであるが、更新が続いた関係からか、以前のプログラムがコンパイルできない。
一度クリーンインストールした方が早そうである。
記事[2]に従ってみる。
SDKマネージャが正常に動作しない。単独でコマンドラインツールをダウンロードして実行すると 次のエラーが出た。多分、以前に、javaの開発で設定したものが残っていたのであろう。
c:\cmdline-tools\bin>sdkmanager ERROR: JAVA_HOME is set to an invalid directory: C:\jdk-16 Please set the JAVA_HOME variable in your environment to match the location of your Java installation.
C:\cmdline-tools\bin>where javac C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot\bin\javac.exe
アプリを作成するとデフォルトでは AndroidManifest.xml は次のようになる。
android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round"
drawable に表示させたいアイコンを置いて例えば次のようにする。 ホーム画面には roundIcon で指定したものが表示される。
android:icon="@drawable/ic_map_blue24" android:roundIcon="@drawable/ic_map_blue24"
スクリーンショットはスマホの右下の四角ボタンを押して、下部に現れるメニュー項目でスクリーンショットを選べば 簡単に取れるが、Android Studioで実機デバッグ中にとる方法もある。Logcatで、カメラアイコンをクリックすればよい[3]。
スクリーンショットではないが、プログラムでview のビットマップを得る方法もある[4]。 キャッシュを使う方法は非推奨になっている。
public Bitmap getViewCapture(View view) { Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888); final Canvas canvas = new Canvas(bitmap); view.draw(canvas); return bitmap; }
USBデバッグあるいはWi-Fiデバッグを使えば、APK(Android application pakage)ファイルを介さず、 自作アプリを自スマホにインストールできるが、Android Studioで APKファイルを作成して、 このファイルをスマホにインストールすることもできる。
その方法は記事[4]が詳しく、分かりやすい。実機デバッグはスマホに与える負担も大きい。 実機デバッグが要らない場合は、APKファイル渡しの方が無難かも知れない。