Kotlin に入門する
https://developer.android.com/codelabs/basic-android-kotlin-compose-install-android-studio?hl=ja#2
Android Studio をインストール
https://speakerdeck.com/mixi_engineers/2024-new-grad-training-android
こちらやってみる
スマホを USB 接続して、Run できた。動くとやっぱり感動する
ただ、編集 -> Run だとスマホに反映するのに体感時間がかかるときもある。その時は、@Preview つけて確認したほうがいいのかも
https://logmi.jp/tech/articles/330709
https://zenn.dev/lisras/articles/c0ffddeef646d2
パケットキャプチャ・生成関連
https://qiita.com/kaitoy/items/91cf5290af0c813ab1ed
https://www.kaitoy.xyz/2016/04/16/pcap4j-in-kotlin/
生成においては、src / dst MAC を変えたい、みたいなのいままでそんななかったと思う(できれば欲しいけど)。IP 以上を変更できればそれで良さそう?
それでいい。とりあえず簡易に作ってみる
Socket 扱うときの permission error
https://www.tfsappsone.com/entry/2022/12/18/143640
https://sugar-programer.hatenablog.com/entry/2019/09/10/234308
android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork
https://qiita.com/notakaos/items/cbfb552c85d4f1e0c787
ただ、AsyncTask は非推奨
ネットワーク通信はメインスレッドでないスレッドでやれだそう
動作確認できた
Androidスマホ実機(OS ver 14)・WindowsPC・RaspberryPi4
RaspberryPi4 上で、port 81 でwebサーバー起動しておく. main.go の port を81へ
pi@raspberrypi:~/github.com/ddddddO/packemon/cmd/debugging/http-server $ sudo go run main.go
RaspberryPi4 上で、sudo tshark -i wlan0 -T fields -E header=y -E separator=/t -e eth.src -e ip.src -e eth.dst -e ip.dst -Y 'tcp.port==81'
以下、USBデバッグでのスマホ上の App のボタン押下で、 RaspberryPi4 のtcp:81 へコネクション確立できたコードの一部
code:a.kt
private class SocketWorker(): Runnable {
@WorkerThread
override fun run() {
Log.d("in launch", "start")
val socket = Socket("192.168.10.110", 81)
val stream = socket.getOutputStream()
stream.writer().write("Sending!!")
stream.flush()
socket.close()
Log.d("in launch", "end")
}
}
@Composable
private fun SendButton(
onClick: () -> Unit,
modifier: Modifier = Modifier,
) {
var count by remember { mutableIntStateOf(0) }
Button(
onClick = {
count++
count++
Log.d("Counted!!", count.toString())
Executors.newSingleThreadExecutor().execute(SocketWorker())
},
modifier = modifier,
) {
Text(text = count.toString())
}
}
キャプチャは src / dst MAC も見たい。pcap lib なのが Java / Kotlin にある?
いや、スマホでキャプチャは今要らない。しんどそうだし
android studio 外付けssd PC本体のディスク容量を節約したい、メモ
一旦、Project は以下外付けSSD配下に格納していく
D:\AndroidStudioProjects\
https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://zenn.dev/colomney/scraps/87edf3aaaebb01&ved=2ahUKEwjq44eU15-IAxVK8DQHHdQOB7oQFnoECBsQAQ&usg=AOvVaw33p8ndT2yjRnmZOotXzmEG
https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://pccoach.pules.jp/dev-ssd/&ved=2ahUKEwjq44eU15-IAxVK8DQHHdQOB7oQFnoECBUQAQ&usg=AOvVaw0l1S7gUtjibc-1Sh1-GIEd