FALCO

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]

© 2024 Falco Tech Blog Suffusion theme by Sayontan Sinha