私はこの質問を見ましたが、配布でき、Androidアプリケーションで使用できるjarファイルの作成に関してさらに疑問があります。
私の要件は何ですか
- 私が言ったように、私はクローズドソースライブラリを構築して配布したいと思います。ソースコードを表示したくありません。
- そのライブラリでは、アセット、レイアウト、リソースなどを使用したくありません。ただし、AndroidデバイスIDの取得など、Android固有のコードを使用したいと思います。
上記のリンクされたSOの質問で最も一般的な回答は、通常のJavaプロジェクトを作成し、それにandroid.jarをインポートすることです。私はそれをやろうとしましたが、android.jarをJavaプロジェクトに追加する方法がわかりません。それについても少し説明したいと思います。
さらに、Android SDK自体を使用して(Javaプロジェクトを使用せずに)クローズドソースライブラリのjarファイルを作成する他の方法があるかどうかを知りたいです。
アンドロイドネイティブアプリのグーグルアナリティクスがそれを行ったように見えるので、私が望むことは可能だと思います。彼らが配布する.jarファイルでは、Android固有のコードを使用していると確信しています。これは、分析ビューアーに表示するデバイス情報を取得する方法が他にないように思われるためです。
編集:誰かがこれを明確にすることができますか?
私はある程度の進歩を遂げたと思います。これは私がしたことです
通常のAndroidプロジェクトを作成しました(ライブラリプロジェクトではなく、「ライブラリ」チェックマークがオフになっています)
プロジェクトでは、ロジックをコード化しました。、、など
SharedPreference
のAndroid固有のクラスを使用します。しかし、アセットとは何の関係もありません。レイアウトもクラス拡張もありません 。ただ拡張するJavaクラスUUID
PackageManager
Activity
java.lang.object
- Project-> rightclick-> export->Java->JARファイルを使用してプロジェクトをエクスポートしました。次の画面で、の近くのチェックボックスをオフにしまし
AndroidManifest.xml
た。エクスポートする宛先ディレクトリを設定し、デフォルト設定を維持したまま次の3回クリックします。次に、[完了]をクリックすると、デスクトップに素敵なlibMyLibraryName.jarが表示されます。
次に、別のAndroidプロジェクトを作成し、プロジェクト->右クリック->プロパティ->javaビルドパス->ライブラリ->外部jarの追加libMyLibraryName.jar
を使用してこれを新しいプロジェクトに追加しました。
そして、新しいプロジェクトで、図書館でクラスを使おうとしました
MyLibraryClass objClass = new MyLibraryClass(this);
そして、私はコンパイルして正常に実行することができました。私は、自分のマシンでライブラリを使用できた同僚の1人にライブラリを送信しました(ワークスペースのライブラリプロジェクトが、それを使用するプロジェクトに影響を与えないことを確認するだけです)。
今私は2つの質問があります。
1)私の最初の質問は、以下のドキュメントで「真のライブラリ」という用語が何を意味するのかということです。JARファイルにエクスポートできるAndroid以外のJavaプロジェクトはありますか?
ただし、ライブラリプロジェクトは、独自の.apkに直接コンパイルして、Androidデバイスで実行できないという点で、標準のAndroidアプリケーションプロジェクトとは異なります。同様に、実際のライブラリの場合のように、ライブラリプロジェクトを自己完結型のJARファイルにエクスポートすることはできません。代わりに、依存アプリケーションでライブラリを参照し、そのアプリケーションをビルドすることにより、ライブラリを間接的にコンパイルする必要があります。
この部分は、「LibraryProjects」というタイトルのドキュメントから抜粋したものです。
2)2番目の質問は、JARファイルの作成方法に何か問題がありますか?後で私を噛む可能性のある落とし穴はありますか?重要なプロジェクトで使用する前に、ひどく間違ったことをしていないことを確認したいと思います。
私はJAVAプロジェクトを作成してインポートする方法を試していなかったことを付け加えるかもしれませんandroid.jar
。私が現在行ったことが間違っている場合、私はそれを試す準備ができています。