composer global require "laravel/installer=~1.1"
https://readouble.com/laravel/4.2/ja/quick.html
build.gradle(app)
android { buildFeatures { viewBinding true } }
使う時
class MainActivity : AppCompatActivity() { lateinit var bind : ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) bind = ActivityMainBinding.inflate(layoutInflater) init() setContentView(bind.root) } private fun init() { bind.button.setOnClickListener{ Toast.makeText(this, "on click", Toast.LENGTH_LONG).show() bind.textViewDice.text = "6" } } }
findViewById
は、もう不要、DataBinding より軽量でシンプル
Execution failed for task ':app:compileDebugJavaWithJavac'. > java.lang.NoClassDefFoundError: javax/annotation/Generated
gradle 7.0.2 JDK11
dagger2 を試そうとしたらエラー
解決策、以下を追加
dependencies { annotationProcessor 'javax.annotation:javax.annotation-api:1.3.2' }
// ? null許容 (Nullable) var a: String = "abc" // Regular initialization means non-null by default a = null // compilation error var b: String? = "abc" // can be set to null b = null // ok // ?. 安全呼び出し (Safe Call) val a = "Kotlin" val b: String? = null println(b?.length) println(a?.length) // 不必要な安全呼び出し // !! Not-Null Assertion Operator // Nullableな変数を強制的にNon-Nullに変換。もし変数がnullだった場合は、例外が発生するので注意 // NPE-lovers の為の演算子? Null の時は、例外を発生させたいと言う強い意志を持って使う var a: Int? = 1 a = null val b = a!!.toString() // java.lang.NullPointerException // ?: エルビス演算子(Elvis Operator) var a: String? = "Hello" a = null val b: String = a ?: "1234567890" println(b?.length) // print 10
# キャプチャー adb shell screencap -p /sdcard/screen.png # ファイル取得 adb pull /sdcard/screen.png # デバイス一覧 adb devices # デバイス指定 adb -s [deviceId] pull /sdcard/screen.png # インストール adb install package.apk # アンインストール adb uninstall package.name
# パッケージ情報の取得
adb shell dumpsys package package.name
# 現在表示されてる Activity の取得
adb shell dumpsys window | grep mCurrentFocus
mCurrentFocus=Window{6f7463b u0 com.example.mybottombar/com.example.mybottombar.MainActivity}
# データ削除
adb shell pm clear package.name
# adb Wifi 接続
# 192.168.10.104 はAndroid端末のIPアドレス
adb tcpip 5555
adb connect 192.168.10.104
https://developer.android.com/studio/command-line/adb?hl=ja
アプリの Digital Color Meter を起動
マウスで取得したい位置へ移動
Command+L ロック
メニュー
表示ー>値の表示 で 16進に変更
カラーメニューよりテキストコピー
AndroidStudio で Gradle7 を使うようになって JDK11 が必須となり、JDK1.8 のプロジェクトを JDK11 に切り替える必要があり頻繁にJDK11 と JDK1.8 を切り替える必要があり zsh の alias でしのいでいましたが行けていなかったので調査
結果以下で対応
.zshrc
jdk() { version=$1 unset JAVA_HOME; echo "/usr/libexec/java_home -v$version"; export JAVA_HOME=`/usr/libexec/java_home -v$version`; java -version }
使い方、コマンドラインから jdk 1.8 or jdk 11
gradle でバージョンを指定する時は、 compileSdkVersion rootProject.ext.compileSdkVersion で指定したり compileSdkVersion buildConfig.compileSdk
等と指定したりしていましたが、
compileSdk build_versions.compile_sdk と言う記述を見つけました。
これからは、上記を使おうかと思います。
versions.gradle ファイル
def build_versions = [:] build_versions.min_sdk = 14 build_versions.compile_sdk = 31 build_versions.target_sdk = 31 build_versions.build_tools = "31.0.0" ext.build_versions = build_versions def versions = [:] versions.activity = '1.1.0' versions.core_ktx = "1.1.0" ext.versions = versions
build.gradle
buildscript { apply from: 'versions.gradle' } android { compileSdk build_versions.compile_sdk } dependencies { implementation "androidx.core:core-ktx:${versions.core_ktx}" }
deps. までは、やらないかな
https://github.com/android/architecture-components-samples/blob/main/BasicSample/app/build.gradle
https://gist.github.com/Schadenfeude/8ed81dd06f01d6eeab571555fc8308d1
./gradlew tasks
ユーザーを指定してSSH
ssh user@url
ユーザーを指定してフォルダー毎コピー
scp -r [folder] [user_name]@example.com:/home/[user_name]/www/webapp/[new folder name]