AndroidプラットフォームアーキテクチャでJavaが採用されている理由は、エンジニア人口が多いから

AndroidプラットフォームアーキテクチャでJavaが採用されている理由は、エンジニア人口が多いから

前書き:何故AndroidはC/C++がメインではないのか AndroidでJavaを採用した理由が気になって夜しか眠れなかったので、調べました。 まず、前提をおさらいします。Androidプラットフォームは、ハードウェアを制御するためにLinux Kernelを採用しています。その上にハードウェアを抽象化するためのHALレイヤーがあり、C/C++とJavaランタイム(Android Runtime)がHALの上にあります。最近では、NativeライブラリにRustも採用され始めたと聞いています。 ...

April 17, 2023 · 6 min
【Android Studio】JSON To Kotlin ClassプラグインでAPIレスポンス用モデルの作成を楽に

【Android Studio】JSON To Kotlin ClassプラグインでAPIレスポンス用モデルの作成を楽に

前書き Androidアプリでは、RESTful APIの実行結果(≒ jsonデータ)に対応するdata classを作成し、kotlinx.serializationでjsonをdata classにデシリアライズする処理があります。 ...

April 1, 2023 · 4 min
【Androidアプリ】コードリーディングに使うアプリをUserLAndからSource Code Viewer Proに浮気した話

【Androidアプリ】コードリーディングに使うアプリをUserLAndからSource Code Viewer Proに浮気した話

前書き:UserLAndは遅かった 約2年前の2019年、私はAndroidスマホでコードリーディングするにはUserLAndが最適だと結論づけていました。 しかし、使い込んでいく内にUserLAnd特有の**「ファイル操作が遅い点」**に我慢できなくなりました。 システムコール単位でフック処理を入れているUserLAndは、ミドルレンジスマホがCeleron PCと同等に感じられるぐらい遅いです。特に、パッケージマネージャによるインストール処理などの待ち時間は長く、下手すると数十分から数時間待たされます。 ...

February 20, 2021 · 5 min
UserLAnd

AndroidにLinux環境を構築する"UserLAnd"がソースリーディング環境(スマホ用)として最適

前書き AndroidにLinuxを導入する試みは、以前からありました。この試みは、AndroidのKernel部分が“Linux Kernel”(Linuxと共通)ですから、自然な発想と考えられます。過去の例で言えば、「Ubuntu(Debian)をAndroid端末に導入」したケースがあります。しかし、これまでのAndroidのLinux化は、煩雑な手順が必要、かつ失敗した場合に端末が文鎮化してしまうリスクがありました。 ...

March 16, 2019 · 6 min
Raspberry Pi3にAndroid7.1.1 + Google Play Storeをインストールする方法

Raspberry Pi3にAndroid7.1.1 + Google Play Storeをインストールする方法

前書き 本記事は、Install Android on his Raspberry Piを実践した結果を示します。具体的には、Raspberry Pi3に対して、Android7.1.1とGoogle Play Storeをインストールします。Androidの最新バージョンは、2018年にリリースされた9.x系ですので、やや古いバージョン(2016年時点の最新版)のインストール方法になります。 ...

January 26, 2019 · 7 min