web-dev-qa-db-ja.com

コマンドラインでGradleなしでAndroid apkを構築するにはどうすればよいですか?

依存関係やモジュールを使用せず、アクティビティが1つで、レイアウトファイルが1つあるAndroidアプリを作成しました。

Gradle(または他の「ビルドシステム」または「依存関係管理」ソフトウェア)を使用せずに、コマンドラインでアプリのapkファイルをビルドするにはどうすればよいですか?

13
aoeu

Ant/graldeを使用してビルドしたくない場合は、次の手順を使用してapkを手動でビルドします。ただし、少なくともAndroid SDKがインストールされている必要があります。

  • aaptからR.Javaを作成します

  • javacを使用してすべてのJavaソースを*.classにコンパイルします

  • dxを使用してすべての*.classdexファイルに変換します。たとえば、出力はclasses.dexです。

  • アセット、リソース、およびAndroidManfiest.mkからAPKの初期バージョンを作成します。たとえば、出力はMyApplication.apk.unalignedです。

  • aaptを使用して、手順3で生成されたclasses.dexMyApplication.apk.unalignedに追加します

  • jarsignerを使用して、デバッグキーまたはリリースキーでMyApplication.apk.unalignedに署名します

  • zipalignを使用して、最終的なAPKを調整します。たとえば、リリースキーで署名する場合、出力はMyApplication-debug.apkまたはMyApplication-release.apkです。

  • 完了

上記のすべてのことを行うためのサンプルスクリプトを作成しました。 ここ を参照してください。

実際、いくつかの記事でこのトピックについて説明されています。次のリンクを参照してください。

https://www.apriorit.com/dev-blog/233-how-to-build-apk-file-from-command-line

https://spin.atomicobject.com/2011/08/22/building-Android-application-bundles-apks-by-hand/

15
alijandro

alijandro完璧な答えを出しました。私はなんとか書きました単純なANTスクリプト AdMobを使用し、gradleを使用せずに本番APKをビルドします。いくつかの有用なコメント:

  1. クラスを難読化したい場合は、コンパイルされたクラス(javacステップとdxステップの間)をjarにして、その上でproguardを実行する必要があります。

  2. AdMobの場合、Zipアーカイブから次のjarファイルを抽出する必要があります(C:\Users\<User>\AppData\Local\Android\sdk\extras\google\m2repository\com\google\Android\gms\play-services-ads\10.2.6\play-services-ads-10.2.6.aarなど)。

    • play-services-ads-10.2.6.jar
    • play-services-ads-lite-10.2.6.jar
    • play-services-base-10.2.6.jar
    • play-services-basement-10.2.6.jar
    • play-services-clearcut-10.2.6.jar
    • play-services-gass-10.2.6.jar
    • play-services-tasks-10.2.6.jar

これらのアーカイブは、javacおよびdxで渡す必要があります

  1. AdMobの場合、いくつかの追加の簡単な設定手順もあります

GradleはAndroidプロジェクトで多くの混乱を引き起こすため、独自のスクリプトは、本番環境に移行するプロジェクトの単一のソリューションのように見えます

1
rupashka

簡単な答えは:Uはできません

そして長いのは:

Apkを作成するプロセスは、継ぎ目ほど簡単ではありません。 https://developer.Android.com/studio/build/index.html

したがって、次のことを行う必要があるだけではありません。

  • リソースをマージし、Rファイルを作成します
  • ソースをJavaにコンパイルしてから、クラスをdalvikにコンパイルします
  • リソースをパッケージ化し、必要なすべてのファイルを使用してZipを作成します
  • あなたの鍵でそれに署名し、

しかし、よくやる、そして私は本当に それを意味する

少しあります。

使用する場合Android studio

  • 緑の三角形をクリックするだけで、ビルドしてインストールできます
  • または、apkを解放したい場合は、ビルド->リリースAPKをアセンブルします

さらに良いことに、簡単なコマンドを使用してこれらのタスクを実行できます

./gradlew assembleRelease
1
Inverce

コマンドラインからサポートライブラリを使用してアプリを構築するには、これを試してください。 https://github.com/HemanthJabalpuri/AndroidExplorer

0