プリコンパイルされたジャック・サーバのアンドロイド7.0作品

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/Tree_in_sea/article/details/54895047
/ ************************************************* ****************************
 *著者:Elvinsフー     [email protected]
 *
 *情報:Boway株式会社、(C)2016- 11-28、すべての著作権はrevseved。
 *
 *説明:この文書は、Bowayのの会社のことについて著者によって加算される   
 *のR&Dは、Java実行している環境やJava開発キットをインストールして、上のプロジェクトをビルド   
 * Androidの7.0プラットフォームの成功。
 *
 *この文脈では、Android 7.0環境プレビュービルドツールを置き換えるされたことが記載されている       
 ジャック・サーバとの* OpenJDKの-7-JREツールを。
************************************************** ************************** /


文書は、章インストール方法のOpenJDKの-8に記載されているが、通常のUbuntuの多くは、-serverおよびエンジニアリングAndroid7.0 -serverジャックが相互作用なしホストジャックはありませんが、1.Android 7.0エンジニアリング環境は、OpenJDKの8ロードする必要があります、Androidのエンジニアが正常にプロジェクトをコンパイルするために、ジャック・サーバーのサービスを実行するための適切な圧縮ファイルを提供し、プロジェクトはUbuntuとAndroidのジャックジャック-serverホストを持っている-server相互に作用します。


次のようにコンパイル時にエラーメッセージになります。
[%18030分の1127 6。]ジャックEnsure®がインストールされ、開始サーバである
FAILED:/ binに/ bashのは-C「(prebuilts / SDK /ツール/ジャック・ADMIN-Serverがインストール/ SDK /ツールをprebuilts /ジャック・launcher.jar prebuilts / SDK 2 /tools/jack-server-4.8.ALPHA.jar>&1 ||(出口0))&&(JACK_SERVER_VM_ARGUMENTS = \「 - 8 Dfile.encoding = UTF- 
-------------- ------------------------
実行中のジャック・サーバー。お試しください]ジャック・ADMIN-Serverのスタート"
ノージャック・サーバーで実行。お試しください]ジャック-ADMINスタート-サーバー「


BULEスカイ@:〜/ ** / Jianwen。
起動ジャック・サーバーのJava -XX:MaxJavaStackTraceDepth = -1する。-Djava.io.tmpdir =を/ tmpの-Dfile.encoding = UTF-8 -XX:+ TieredCompilation -cp /home/prayasm/.jack-server/launcher.jarコム。 android.jack.launcher.ServerLauncher
ジャックは、サーバに(再)スタート、試し「ジャック・診断」を参照してくださいジャック・サーバ・ログまたは失敗した




ローカルディレクトリ2.ubuntuホスト




注ホームディレクトリサーバ192.168.2.188でジャック・サーバーが存在しないことを、I 192.168.2.188を基準として、次のコマンドを実行し、独自のシミュレーション環境をホストするために、
Ubuntuのホストopenjdk8環境がインストールされている見つけ、ファイルをコピーし、この方法は、以前にopenjdk8コンパイルされたメソッドよりも高速ですが、依存性は良くありません、危険度の高いです。
------------------------------------
2079 -R&LT SCPの/ etc / 8-JavaにOpenJDKの/ BULE 192.168.2.244 @:は/ etc /
(フォルダを転送するには、以下のフォルダソフトの接続ファイルこのファイル)
2075年のscp -r /usr/lib/jvm/java-1.8.0-openjdk-amd64 BULE 192.168.2.244 @:は/ usr / libに/ JVM
2077 -R&LT SCPは/ usr / libに/ JVM / JavaベースのOpenJDK 8 - AMD64 / [email protected]:は/ usr / libに/ JVM


192.168.2.244のホストにファイルを転送する一方で、サーバ192.168.2.188、Ubuntuのいないホームディレクトリ.jack .jackサーバ.jack設定は、次のコマンドは、Ubuntuの中にホスト192.168.1.15に実行されます。


-R&LT .jack SCP-サーバ2081 / [email protected]:.jack-サーバ
SCP -R&LT .jack [email protected]の2082:.jack
2086 SCP - R&LT .jack [email protected]セッティング:.jack-設定
------------------------------------------------- ------------
で、システム構成や環境のコンパイラオプションに書き込まれたOpenJDKの
2040 sudoのアップデート-代替--installの/ usr / binに/ Javaのjavaのは/ usr / libに/ JVM / javaの-8- AMD64-OpenJDKの/ binに/ Javaの
2041代替--install-更新sudoのは/ usr / binに/のJavaのJavaの/ usr / libに/ JVM / JavaベースのOpenJDK 8 - 。AMD64 / binに/ Javaの1081
2042代替--install sudoの更新/ USR / binに/のjavac javacのは/ usr / libに/ JVM / javaの-8-OpenJDKの-AMD64 / binに/ javacの1081
2043 sudoの更新選択肢が--installは/ usr / binに/てjavapてjavapは/ usr / libに/ JVM / javaの-8-OpenJDKの-AMD64 / binに/てjavap 1081
2044 sudoのアップデート-代替--installの/ usr / binに/ javahはjavahは/ USR / libに/ JVM / javaの-8-OpenJDKの-AMD64 / binに/ javahは1081
2045 sudoのアップデート-代替--installの/ usr / binに/ジャー・ジャーは/ usr / libに/ JVM / javaの-8-OpenJDKの-AMD64 / binに/瓶1081
2048のsudoのアップデート-代替--installの/ usr / binに/ javadocのJavadocのは/ usr / libに/ JVM / javaの-8-OpenJDKの-AMD64 / binに/ javadocの1081
-------------- ----------------
转换为OpenJDKの-8-JREの的のJava环境


2050 sudoのアップデート-代替--configのjavadoc 
2051 sudoのアップデート-代替--installの/ usr / binに/ JavaのJavaの 
2052 sudoのアップデート-代替--config javaの
2053 sudoの更新代替--config javacの
須藤更新代替--config-2054てjavap
2055個の更新sudoの代替--config-javahは
2056年の更新sudoの代替--config-javadocの 
2057 sudoのアップデートJAR-代替--config










3.アンドロイド7.0プロジェクトをコンパイルする前に、以下を実行します。コマンド、対話
〜/ワークスペース/ jianwen.fu / jianwen.fu / V65_An7 / prebuilts / SDK /ツール$:BULEスカイ@
 ジャック-ADMINサーバースタート-
 ジャック・ADMIN-サーバーキル
 ジャック-ADMINサーバーリスト-
 ジャック-ADMINアンインストールを-server
 > mm.outミリメートル-j32 showcommands&
 ジャック・ジャック-ADMINインストール・サーバ・サーバー4.8.ALPHA.jarのlauncher.jarジャック
 ジャック・ダンプ・レポート-ADMIN
 ジャックダンプ-RE-ADMIN




複数の環境設定の後には成功し、UbuntuのエンジニアリングとAndroidジャックのジャック-serverホストは、-server互いに相互作用、アンドロイド7.0は正常にコンパイルすることができます。


4.参照を
。http://source.android.com/source/initializing.html
http://source.android.com/source/jack.html
https://code.google.com/p/android/issues
HTTPS:// android.googlesource.com/platform/prebuilts/sdk/+/master/tools/README-jack-server.md
https://code.google.com/p/android/issues/detail?id=194027#c14


5。ジャック・サーバーの分析


あなたは、Androidをコンパイルするとき、あなたは何を変更する必要はありません。ジャックのAndriod Mは、デフォルトのコンパイラツールです。ただ、コマンドを実行するために、標準のメイクファイルを使用しています。
ときに最初に実行ジャック、それはあなたのマシン上のサービスジャックコンパイルを開始します:
それは新しいJVMを開始回避するので、コードはジャック、ジャックがロードされ、各コンパイルを初期化され、このサービスが大幅に改善コンパイル速度を-JITを事前に、小さなコンパイルプロセスにおいて、それはまた、非常に良好である時間を節約する(例えば、インクリメンタル・モードで)
このサービスは、ジャック並列コンパイルを制御するために短期的な解決策です。ハードディスクメモリのオーバーフローの問題を回避することができるようにそれは、並行してコンパイルされたデータの量を制限することができ
ていない活動の期間をコンパイルするとき、ジャック・サービスが自動的にシャットダウンします、それは一般に公開され、ローカルでない上に2つのデフォルトのTCPポートを使用しています。また、そのような並列の数、タイムアウト時間、ようにポートとジャックなどのサービスを、設定するパラメータの数を提供します。たったの$ HOME / .jackファイルを変更します。
$ HOME / .jackファイル
の$ HOME / .jackファイルには、ジャックがサービス変数の設定が含まれている
:以下の変数が利用可能になりまし説明されている
。= 1現在、無用SERVER_NB_COMPILE SERVER = trueにジャック・サーバSERVER_PORT_SERVICE = 8072ビルドサービスのSERVER_PORT_ADMIN = 8073 TCPポートTCPポートの管理サービスを有効にするSERVER_COUNTを= 4アイドルタイムデータの並列コンパイラsERVER_TIMEOUT = 60分の最大数は、何のコンパイル時間が時間を超えない、サービスが自動的にオフになりsERVER_LOG = $ {sERVER_LOG:= $ SERVER_DIR /ジャック- $ SERVER_PORT_SERVICE.log} ストレージディレクトリサーバログ、環境変数であってもよいですJACK_VM_COMMAND = $ {JACK_VM_COMMAND:= javaの置き換え } デフォルトのJVMの起動コマンドを、環境変数を置き換えることができ 
ジャックの質問
コンピュータが応答しない場合、またはメモリオーバーフローがコンパイル時に発生した1.
あなたはSERVER_NB_COMPILEの数を減らすことができ、コンパイル取るメモリを削減します。
バックグラウンドサーバが起動1.Cannot
可能な場合に便利なTCPポートが占有されている、SERVER_PORT_SERVICEとSERVER_PORT_ADMINパラメータ変更しようとする
ジャック制限を
?ジャック・サーバは、シングルユーザーのデフォルトである、それだけで、同時に一人のユーザーによって使用することができます。あなたが複数の同時ユーザーが必要な場合は、誰もが別のポートを使用していますしてください。あなたが設定することもできSERVER = falseを無効にサーバージャック
?CTSコンパイラが遅くなります。
?バイナリ関連ツールは、JaCoCoよう、サポートしていません。
ジャック・プロパティを使用します
ジャック・サポート・JDK1.7、そしてどのような特性の統合
Predexing
ジャックバッグを生成する場合、DEXパッケージ生成および保存されますジャックパックは、このプロセスは、コンパイル時に、事前にDEXで、ジャックは各パッケージのためになります。前DEXを使用する
すべてのパッケージは、プリdexedある
制限:
現在のバージョンでは、コード圧縮/混乱/再パッケージ化、ジャックは前DEXパッケージ再利用しない設定した場合、




コンパイル6.Jackサーバーマルチユーザー


Android7.0を(つまり、AndroidのN)、デフォルトのコンパイラを使用しての代わりに、JACKのOpenJDKのを使ってますが、JACKが有用ではない見つかったが、例えば、最大の問題は、同時に異なるユーザが同じLinuxサーバ上andorid7.0コンパイルすることはできません、ということですユーザーをコンパイル開始より遅れているが、適切にジャック・サーバを起動することはできません理由は、そこにはいくつかのマクロJACKドキュメントを提供すると言われているが、ジャック・サーバは、単に、シャットダウンができませんでしたが、ちょうど設定されたマクロの対応する値が閉鎖されることですが、測定が無効であることが判明し、閉じたりありません、




解決しようと、多くのオンラインの人々は、この問題は、HTTPS、そこに反映されます。id = 194027 //code.google.com/p/android/issues/detailが、有効な解決策はありませんか?場合は、最も可能性の高い方法を試すには2つの側面からである:
1)、この問題は、RAMを増加させるために必要なことを言われた:私はとき、私はVitualMachineにあったエラーを持っていたし、修正がRAMを増加して、 彼は仮想マシンです。 、我々はRAMとは何の関係もあってはならない;
2)、コンフィギュレーション・ファイル$ HOME / .jack-設定を変更することで、別のポート番号を設定します
。#サーバの設定
= 127.0.0.1 SERVER_HOST
SERVER_PORT_SERVICE = 8076
SERVER_PORT_ADMIN = 8077
#内蔵、タッチしていない
SETTING_VERSION = 4つ
の実験は.jack-設定が有効ではない単一の構成ファイルの$ HOME /ポート番号を変更し、ジャック・サーバがポートを示唆し、起動に失敗したことがわかりました占有:

java.net.BindException:によって引き起こさすでに使用中のアドレス
sun.nio.ch.Net.bind0(ネイティブメソッド)AT
sun.nio.ch.Net.bind(Net.java:433)AT
日AT nio.ch.Net.bind(Net.java:425)
sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)AT
sun.nio.ch.ServerSocketAdaptor.bind AT(ServerSocketAdaptor.java:74)
COM AT .android.jack.server.ServerParameters.openSocket(ServerParameters.java:88)
com.android.jack.server.ServerParameters.getServiceSocket AT(ServerParameters.java:67)
com.android.jack.server.JackHttpServer.start AT(JackHttpServer.java:605)

。3)、ポートの$ HOME / .jackサーバ/ config.propertiesを変更する必要がない限り有効である一方で、他のユーザーが開始することができます別ジャックサーバの再起動ジャックサーバは、これはマルチユーザコンパイルを同時に達成することができる場合、有効なプロ試験:
#Tue 9月13日には午後05時44分41秒CST 2016で
jack.server.max-JARファイルサイズ= 104857600
jack.server 。= 4-サービス-.MAX
jack.server.service.port = 8076 
jack.server.max-service.by-MEM 1 = \ = 2147483648 \:2 \ = 3221225472 \ :. 3 \ = 4294967296
jack.server.admin.port 8077 =
jack.server.config.version = 2
jack.server.time-OUTは= 7200(例えば、8086,8087等のように、これらの2本の赤線の上に変性)


溶液を要約している:
$ホームを変更しつつ/ .jack-設定や$ HOME / .jack-サーバーは、/ポート番号(例えば、8087分の8086に変更されている)、コンパイルのみを同時に複数のユーザーをサポートしてconfig.properties。
現在、Googleが最適化を行います場合はJACKをバック参照、問題を解決するために、このメソッドを使用することができます。ご質問がある、Paizhuanしてください!


-------------------------------------------------- -------------------------------------------------
サプリメント後に発生したコンパイル済みの何が間違って解決策: 
エラー:
 ジャック・サーバーがインストールされていることを確認し、開始の
再試行、まだ与えられています:
FAILED:/ binに/ bashのは-c「(prebuilts / SDK /ツール/ジャック管理者インストール-serverprebuilts / SDK /ツール/ジャック・launcher.jar prebuilts / SDK /ツール/ジャック・サーバー4.8.ALPHA.jar2>&1 | |(出口0))&&(JACK_SERVER_VM_ARGUMENTS = \ " - Dfile.encoding = UTF-8-XX:+ TieredCompilation \" prebuilts / SDK /ツール/ジャック・管理を開始-server2の>&1つの||終了0)&&(prebuilts / SDK /ツール/ジャック管理updateserver prebuilts / SDK /ツール/ジャックサーバ4.8.ALPHA.jar 4.8.ALPHA 2>&1 ||出口0)&&(prebuilts / SDK /ツール/ジャック管理者更新jackprebuilts / SDK /ツール/ジャック/ジャック・2.28.RELEASE.jar 2.28.RELEASE ||終了47; prebuilts / SDK /ツール/ジャック管理者更新jackprebuilts / SDK /ツール/ジャック/ジャック・3.36.CANDIDATE.jar 3.36.CANDIDATE ||終了47; prebuilts / SDK /ツール/ジャック管理者更新jackprebuilts / SDK /ツール/ジャック/ジャック・4.7.BETA.jar 4.7.BETA ||の出口47)」
ジャック・サーバはすでに"/home/local/ACTIONS/songzhining/.jack-server"にインストール
MaxJavaStackTraceDepth = -1する。-Djava.io.tmpdir =を/ tmp-Dfile.encoding = UTF-8 -XX:ジャック・サーバーのJava -XX起動します:+ TieredCompilation -cp /ホーム/ローカル/行動/ songzhining / .jackサーバ/ launcher.jarcom.android.jack.launcher.ServerLauncher
ジャック・サーバは、(再)スタートに失敗し、「ジャック・診断」やジャック・サーバーのログを参照してくださいしてみてください
いいえジャック・サーバーを実行しません。「スタート-サーバージャック管理者」を試してみてください
ませんジャック・サーバーを実行。「ジャック・管理開始サーバー」を試してみてください
忍者:ビルドは停止:サブコマンドは失敗しました。
作る[1]:*** [ninja_wrapper]エラー1


解决方案:
通过查看文件$ HOME / .jack-サーバー/ログ/ジャック・サーバ0-0.log:

com.android.jack.server.api.v01.ServerException: './config.properties' musthaveしかし、パーミッションはrwxを持ってい------ ------- RW

によって引き起こさ:にjava.io.IOException:' ./config.properties'持たなければならないが、rwxのを持っていているpermissionrw ------ -------しかし

... 2もっと


発見権利プロファイルは、ファイル$ HOME / .jackサーバ/によって引き起こされていませんRWXのRWを変更するconfig.properties許可が問題を解決することができます。

おすすめ

転載: blog.csdn.net/Tree_in_sea/article/details/54895047
おすすめ