Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
DelphiRAD Studioアップデートニュース

Delphi 12.3でアップデートされたAndroid開発環境

top10-013

Delphi 12.3では、あまり派手な機能追加こそ少ないものの、Android開発に関する重要なアップデートが行われています。本ブログでは、これらの変更が開発者にもたらすメリットをご紹介いたします。

Android API レベル 35への対応

2024年8月31日以降、Google Playの要件として新しいアプリとアプリ アップデートを Google Play に送信する場合は、Android 14(API レベル 34)を対象にする必要があります。

​詳細は、Google Play アプリの対象 API レベル要件をご参照ください。

Delphi 12.3では、Android 15(API レベル 35)に対応しました。API レベル 35 への対応を進めておくことで、将来的な要件変更に迅速に対応できます。

AndroidManifest.xmlのtargetSdkVersionのマニフェスト属性のデフォルト値は 「35」 となりました。

開発時にカスタムキーストアの設定が可能に

Delphi 12.3よりも前のバージョンでは、DelphiによるAndroidアプリの開発時では、Androidデバイスへアプリをデプロイを行う際、デフォルトのデバッグ用キーストア(debug.keystore)を使用して署名していました。

デバッグ用キーストア(debug.keystore)の配置場所は、以下の通りです。(Delphi 12.xの場合)

C:¥Users¥<ユーザー名>¥AppData¥Roaming¥Embarcadero¥BDS¥23.0¥debug.keystore

開発時にdebug.keystoreを使うのは確かに便利で、特に何も設定しなくてもビルドやデプロイができるので、多くの開発者がそのまま使っています。ただし、このdebug.keystoreはあくまでテスト用の一時的な鍵であって、本番で使うものとは全く別の署名になります。そのため、リリース時の動作と署名に違いが出ることがあり、開発中は正常に動いていたのに、本番環境で突然うまく動かないという問題が起こることもあります。

たとえば、Firebase認証やGoogle MapsなどのAPI連携では、アプリの署名(SHA-1ハッシュ)をもとにアクセス制御されているため、debug.keystoreでビルドしたアプリとは別物と見なされてしまい、機能しないことがあります。また、debug.keystoreはマシンごとに自動生成されるため、チームで開発していると、各メンバーで署名がバラバラになり、テスト時の挙動が統一されないという問題も出てきます。

さらに、debug署名でインストールされたアプリは、本番署名のアプリとは別扱いになるため、アップデートの動作確認ができず、実際のストア公開後にトラブルが見つかることもあります。

こうした理由から、開発段階でもリリース用のキーストアを使ってビルドしておくことが、結果的には安全で効率的な開発につながります。

そこでDelphi 12.3からは、Androidアプリケーションストアの作成時と同様、開発時にもユーザー定義のカスタムキーストアを利用可能になりました。

キーストアの作成方法は、こちらのドキュメントをご参照ください。

1-37


これにより、次のようなメリットが得られます。

  • リリース用と同じ署名で開発・テストが可能
  • FirebaseやGoogle Mapsなど、SHA-1証明書の一致が必要なAPIとの連携がスムーズ
  • チーム開発やCI/CD環境での署名一貫性の確保
  • アップデート時の署名不一致エラー(INSTALL_FAILED_UPDATE_INCOMPATIBLE)の回避

署名周りのトラブルを事前に防ぎ、本番に近い環境での検証が容易になる点は、非常に有益です。

開発時にカスタムのキーストアを設定していない場合は、従来通り debug.keystoreが適用されます。

Android NDKのアップデート

Delphi 12.3では、AndroidのNDKが従来のr21からr27へと更新されました。この移行は一見地味に思えるかもしれませんが、実は開発者にとって非常に重要な意味を持っています。まず、新しいNDKでは、Androidの最新仕様やデバイスに対する互換性が強化されており、これによりアプリの安定性やセキュリティが向上します。特に最近のAndroidデバイスでは、16KBページサイズという新しいメモリ仕様が採用されており、古いNDKではこの仕様に対応できず、アプリが起動時にクラッシュするという深刻な問題も発生していました。Delphi 12.3ではNDK r27に対応したことで、このような新しいハードウェア構成でも問題なくアプリが動作するようになっています。

Android NDK 27 への移行後、Android SDK 設定ダイアログは、適切な Android SDK オプションのデフォルト値を自動的に設定します。

2-17

16KBページサイズのサポート

最近のAndroidデバイス(特にPixel 6以降)では、メモリページサイズが従来の4KBから16KBへと拡張されたモデルが登場しています。これに対応していないネイティブライブラリ(.soファイル)を含むアプリは、起動時のロードに失敗してアプリがクラッシュするリスクがありました。

Delphi 12.3では、この16KBページサイズに対応するようNDKビルドが改修されており、開発者側で特別な設定をしなくても、今後増えていく16KB対応デバイスでも安心してアプリが動作します。特にDelphiのAndroidアプリはNDKベースで構成されているため、今回のアップデートは重要です。

Googleの公式の「16 KB ページサイズのサポート」に関するドキュメントは、こちらを参照ください。

まとめ

Delphi 12.3では、APIレベル35対応による互換性強化、開発時の署名整合性を保つカスタムキーストアの活用、そしてNDK r27への移行による16KBページサイズ対応等のアップデートが行われています。

これらの改善は、アプリの安定運用やリリース後のトラブル回避に直結する非常に価値の高いポイントです。これからAndroidアプリ開発を進める方、また既存アプリのメンテナンスを考えている方は、ぜひDelphi 12.3へアップデートをご検討ください。

関連情報


RAD Studio 13.2 Florence Now Available! Kai 1.1.1 Now Available! What's Coming in RAD Studio 13.2 Florence

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.

Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES