usakdsteen

ゆうさくですてぃーん

メモ:あんどろ(1)

自分用メモ 

新規作成系

 環境

OS: Windows7

Java: JDK8

Ant: 1.9.2

 

id: Android-15

Platform: Android 4.0.3

API Level: 15

Revisions: 5

Tag/ABIs: default/armeabi-v7a

Android SDK Tools: 25.2.5
Android SDK Platform-tools: 29.06
Android SDK Build-tools: 29.0.3

 

使用してるドキュメント: Android4.4.2時点のもの (6年以上昔の古い情報)

 

プロジェクト作成

ttp://127.0.0.1:8000/training/basics/firstapp/creating-project.html

このコマンドでアプリ作る可能なターゲットをリストアップして調べる

android list targets

android はバッチファイルで引数なしで実行するとGUISDKマネージャが起動する…

※このバッチファイル、substコマンドで生成したドライブ下では(何かの設定が悪かったのか)動かなかった…残念…

 

このコマンドでアプリの空プロジェクト(テンプレート)一式が生成される

MyFirstAppとかの引数は適宜

android create project --target <target-id> --name MyFirstApp \
 --path <path-to-workspace>/MyFirstApp --activity MainActivity \
 --package com.example.myfirstapp

※ android --help create project コマンドを実行すると引数の説明でてくるが、--gradleの指定でビルドツールをantじゃなくgradleにすることもできるらしい(まぁantのほう使うけど)

 

実機でのアプリのテスト実行

ttp://127.0.0.1:8000/training/basics/firstapp/running-app.html

このコマンドでアプリのデバッグ版がビルドされる

> ant debug

スマホの実機をPCに繋いだら

このコマンドを実行でアプリをインストールできる

またadbがデバッグ情報受け取りのためサーバーになってスマホと接続状態が継続されるぽい

> adb install bin\MyFirstApp-debug.apk

 

インストール済みのところにもう一度インストールするときは -r フラグをつけると新しいのに置き換えてくれる

> adb install -r bin\MyFirstApp-debug.apk

 

 

端末からのアンインストールのコマンドはパッケージ名で指定する必要がある

> adb uninstall com.example.myfirstapp

 

 

デバッグサーバー状態のままだとスマホとPCの接続切れないから

adbのサーバーを止めることで強制的に切れる

> adb kill-server

(これは昔ググったときに見た情報でありこのやりかたがいいのか知らん、要調査)

 

AndroidManifest.xmlのuses-sdkタグ

チュートにあったuses-sdkタグの設定をどうすればいいのか分からんかったので設定しなかった、後で調べる

ttp://127.0.0.1:8000/guide/topics/manifest/uses-sdk-element.html

 

 android:minSdkVersion ... アプリ動かすのに必要な最小のAPIレベルを指定するらしい、省略すると1になり初期のAndroid端末でも動くことを保証することになるらしい…ヤバい、設定必須の重要項目だた。create projectコマンドで生成されるAndroidManifest.xmlにはデフォではuses-sdkタグは含まれてないので毎度書き入れる必要がある

 

android:targetSdkVersion ... 雑に言えば実行確認済みの端末のVersion(APIレベル)。minSdkVersionからこのバージョンまで全部確認してますよー的な。これが実機のAPIレベルより低い場合に互換性モードが発動するらしい、互換性モードが望ましくない場合は最新実機までちゃんとテストしてここに記せってことらしい?省略するとminSdkVersionと同じになる。(この属性はAPIレベル4で導入されたらしい?まぁ4未満で動かすことないから関係ないか)

 

android:maxSdkVersion ... 設定したらダメと説明されてる属性…ここで指定したAPIレベルより高いAPIレベルを使う端末は(後方互換性がない可能性から)一切サポートしないということを示す感じ?端末のAndroidのバージョンをアップデートして端末のAPIレベルが上がったときに上がったAPIレベルより低いAPIレベルをこの属性で指定してるアプリを自動削除するという機能が発動。通常は後方互換性があるようにAndroidは設計されてるらしいので不要な属性らしい。Android2.0.1以降は勝手に削除はしなくなったらしい(?)がGooglePlayではチェックしてるらしいくこの属性は設定しないほうがいいらしい。APIレベル4導入されたらしいAndroid1.6あたりがAPIレベル4ぽい?

 

f:id:neetsdkasu:20200420201137p:plain