HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2018/03/11

Androidの開発環境 Android Studioを完全全自動でインストールする方法 2018年版まとめ Androidの開発環境 Android Studioを完全全自動でインストールする方法 2018年版まとめ

(Windowsの Android Studio開発環境をオフライン状態で無人インストールする方法)

Tags: [Android開発]




● Windowsの Android Studio開発環境を完全全自動で構築する

 64ビット環境の実行環境は不可解なトラブルが怖いので x86の 32ビット系で構成しています。
 ただし、NDKの CMakeを使う場合は 64ビット環境が必須(※)な気がします。
 (x86版の Android Studio 3.0.1では インストール一覧に CMakeが出て来ないから)
 ※ 32ビット版の Android Studioを 64ビット環境で動かすと言う意味です。

C:\Android
C:\Android\android-sdk
C:\Android\android-sdk\build-tools
C:\Android\android-sdk\cmake
C:\Android\android-sdk\emulator
C:\Android\android-sdk\extras
C:\Android\android-sdk\ndk-bundle
C:\Android\android-sdk\patcher
C:\Android\android-sdk\platforms
C:\Android\android-sdk\platform-tools
C:\Android\android-sdk\sources
C:\Android\android-sdk\tools
C:\Android\android-studio
C:\Program Files (x86)\Java\jdk1.8.0_162

set ANDROID_ROOT=C:\Android
set ANDROID_SDK_ROOT=C:\Android\android-sdk
set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_162

Android Studio 3.0.1
Java SE Development Kit 8u162
jdk-8u162-windows-i586.exe

 バッチファイルと同じ所に
 あらかじめ保存しておく EXEファイル
 // Java SE Development Kit 8u162
jdk-8u162-windows-i586.exe
UnZip.exe

 バッチファイルの
.\00_ZIP
 ディレクトリにあらかじめ保存しておく ZIPファイル
 ※ ZIPファイルが無い場合でもインターネットから ZIPファイルを自動でダウンロードします。
android-studio-ide-171.4443003-windows32.zip
sdk-tools-windows-4333796.zip
platform-tools-latest-windows.zip
android-ndk-r16b-windows-x86_64.zip
cmake-3.6.4111459-windows-x86_64.zip
build-tools_r26.0.2-windows.zip
build-tools_r27.0.3-windows.zip
android-2.3.3_r02.zip
android-15_r05.zip
android-19_r04.zip
android-22_r02.zip
platform-24_r02.zip
platform-26_r02.zip
platform-27_r01.zip
android_m2repository_r47.zip
google_m2repository_gms_v11_3_rc05_wear_2_0_5.zip
3534162-studio.sdk-patcher.zip.bak
market_apk_expansion-r03.zip
market_licensing-r02.zip
google_play_services_v15_1_rc12.zip
usb_driver_r11-windows.zip
play_billing_r05.zip
emulator-windows-4530189.zip

 上記 ZIPファイルのダウンロード直リンク
https://dl.google.com/dl/android/studio/ide-zips/3.0.1.0/android-studio-ide-171.4443003-windows32.zip
https://dl.google.com/android/repository/sdk-tools-windows-4333796.zip
https://dl.google.com/android/repository/platform-tools-latest-windows.zip
https://dl.google.com/android/repository/android-ndk-r16b-windows-x86_64.zip
https://dl.google.com/android/repository/cmake-3.6.4111459-windows-x86_64.zip
https://dl.google.com/android/repository/build-tools_r26.0.2-windows.zip
https://dl.google.com/android/repository/build-tools_r27.0.3-windows.zip
https://dl.google.com/android/repository/android-2.3.3_r02.zip
https://dl.google.com/android/repository/android-15_r05.zip
https://dl.google.com/android/repository/android-19_r04.zip
https://dl.google.com/android/repository/android-22_r02.zip
https://dl.google.com/android/repository/platform-24_r02.zip
https://dl.google.com/android/repository/platform-26_r02.zip
https://dl.google.com/android/repository/platform-27_r01.zip
https://dl.google.com/android/repository/android_m2repository_r47.zip
https://dl.google.com/android/repository/google_m2repository_gms_v11_3_rc05_wear_2_0_5.zip
https://dl.google.com/android/repository/3534162-studio.sdk-patcher.zip.bak
https://dl.google.com/android/repository/market_apk_expansion-r03.zip
https://dl.google.com/android/repository/market_licensing-r02.zip
https://dl.google.com/android/repository/google_play_services_v15_1_rc12.zip
https://dl.google.com/android/repository/usb_driver_r11-windows.zip
https://dl.google.com/android/repository/play_billing_r05.zip
https://dl.google.com/android/repository/emulator-windows-4530189.zip


 インストール用バッチファイル
@echo off
echo %~dp0
set BAT_HOME=%~dp0
set ZIP_HOME=%BAT_HOME%00_ZIP\

echo = Android Install
pause

set ANDROID_ROOT=C:\Android
if not exist %ANDROID_ROOT% mkdir %ANDROID_ROOT%

set ANDROID_EMULATOR_HOME=%ANDROID_ROOT%\.android
if not exist %ANDROID_ROOT% mkdir %ANDROID_ROOT%

set ANDROID_SDK_ROOT=%ANDROID_ROOT%\android-sdk
set ANDROID_NDK_ROOT=%ANDROID_SDK_ROOT%\ndk-bundle

echo Java SE Development Kit 8u162
set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_162
if exist "%JAVA_HOME%\COPYRIGHT" goto SKIP_JAVA

echo Java SE Development Kit 8u162
start /wait jdk-8u162-windows-i586.exe /s ADDLOCAL="ToolsFeature"
setx JAVA_HOME "%JAVA_HOME%"

set PATH=%JAVA_HOME%\bin;%PATH%
setx PATH "%PATH%"

:SKIP_JAVA

rem https://developer.android.com/studio/index.html
mkdir %ANDROID_ROOT%\android-studio
set FILE_ZIP=%ZIP_HOME%android-studio-ide-171.4443003-windows32.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/dl/android/studio/ide-zips/3.0.1.0/android-studio-ide-171.4443003-windows32.zip
call :_UnZip %FILE_ZIP% %ANDROID_ROOT%\


mkdir %ANDROID_SDK_ROOT%
set FILE_ZIP=%ZIP_HOME%sdk-tools-windows-4333796.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/sdk-tools-windows-4333796.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\


rem https://dl.google.com/android/repository/platform-tools_r27.0.1-windows.zip
set FILE_ZIP=%ZIP_HOME%platform-tools-latest-windows.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/platform-tools-latest-windows.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\


rem https://developer.android.com/ndk/index.html
rem mkdir %ANDROID_SDK_ROOT%\ndk-bundle
set FILE_ZIP=%ZIP_HOME%android-ndk-r16b-windows-x86_64.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/android-ndk-r16b-windows-x86_64.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\
ren %ANDROID_SDK_ROOT%\android-ndk-r16b ndk-bundle


echo CMake 3.6.4111459
mkdir %ANDROID_SDK_ROOT%\cmake
set FILE_ZIP=%ZIP_HOME%cmake-3.6.4111459-windows-x86_64.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/cmake-3.6.4111459-windows-x86_64.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\cmake\


mkdir %ANDROID_SDK_ROOT%\build-tools
set FILE_ZIP=%ZIP_HOME%build-tools_r26.0.2-windows.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/build-tools_r26.0.2-windows.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\build-tools\
ren %ANDROID_SDK_ROOT%\build-tools\android-8.1.0 26.0.2


rem mkdir %ANDROID_SDK_ROOT%\build-tools
set FILE_ZIP=%ZIP_HOME%build-tools_r27.0.3-windows.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/build-tools_r27.0.3-windows.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\build-tools\
ren %ANDROID_SDK_ROOT%\build-tools\android-8.1.0 27.0.3


rem
mkdir %ANDROID_SDK_ROOT%\platforms
set FILE_ZIP=%ZIP_HOME%android-2.3.3_r02.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/android-2.3.3_r02.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\platforms
ren %ANDROID_SDK_ROOT%\platforms\android-2.3.3_r02-linux android-10


set FILE_ZIP=%ZIP_HOME%android-15_r05.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/android-15_r05.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\platforms
ren %ANDROID_SDK_ROOT%\platforms\android-4.0.4 android-15


set FILE_ZIP=%ZIP_HOME%android-19_r04.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/android-19_r04.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\platforms
ren %ANDROID_SDK_ROOT%\platforms\android-4.4.2 android-19


set FILE_ZIP=%ZIP_HOME%android-22_r02.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/android-22_r02.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\platforms
ren %ANDROID_SDK_ROOT%\platforms\android-5.1.1 android-22


set FILE_ZIP=%ZIP_HOME%platform-24_r02.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/platform-24_r02.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\platforms
ren %ANDROID_SDK_ROOT%\platforms\android-7.0 android-24


set FILE_ZIP=%ZIP_HOME%platform-26_r02.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/platform-26_r02.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\platforms
ren %ANDROID_SDK_ROOT%\platforms\android-8.0.0 android-26


set FILE_ZIP=%ZIP_HOME%platform-27_r01.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/platform-27_r01.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\platforms
ren %ANDROID_SDK_ROOT%\platforms\android-8.1.0 android-27


mkdir %ANDROID_SDK_ROOT%\extras
mkdir %ANDROID_SDK_ROOT%\extras\android
set FILE_ZIP=%ZIP_HOME%android_m2repository_r47.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/android_m2repository_r47.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\extras\android\


echo - Install Google Repository (revision: 58)
mkdir %ANDROID_SDK_ROOT%\extras\google
set FILE_ZIP=%ZIP_HOME%google_m2repository_gms_v11_3_rc05_wear_2_0_5.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/google_m2repository_gms_v11_3_rc05_wear_2_0_5.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\extras\google\


rem 3534162-studio.sdk-patcher.zip.bak
rem https://dl.google.com/android/repository/3534162-studio.sdk-patcher.zip.bak
mkdir %ANDROID_SDK_ROOT%\patcher
set FILE_ZIP=%ZIP_HOME%3534162-studio.sdk-patcher.zip.bak
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/3534162-studio.sdk-patcher.zip.bak
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\patcher\
ren %ANDROID_SDK_ROOT%\patcher\sdk-patcher v4


echo - Google Play APK Expansion library (extras;google;market_apk_expansion)
set FILE_ZIP=%ZIP_HOME%market_apk_expansion-r03.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/market_apk_expansion-r03.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\extras\google\
ren %ANDROID_SDK_ROOT%\extras\google\google_market_apk_expansion market_apk_expansion

echo - Google Play Licensing Library (extras;google;market_licensing)
set FILE_ZIP=%ZIP_HOME%market_licensing-r02.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/market_licensing-r02.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\extras\google\
ren %ANDROID_SDK_ROOT%\extras\google\google_market_licensing market_licensing


rem echo - Install Google Play services (revision: 44)
rem set FILE_ZIP=%ZIP_HOME%google_play_services_v13_2_rc09.zip
rem if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/google_play_services_v13_2_rc09.zip
rem call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\extras\google\
rem ren %ANDROID_SDK_ROOT%\extras\google\google-play-services google_play_services


echo - Install Google Play services (revision: 48)
set FILE_ZIP=%ZIP_HOME%google_play_services_v15_1_rc12.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/google_play_services_v15_1_rc12.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\extras\google\
ren %ANDROID_SDK_ROOT%\extras\google\google-play-services google_play_services


echo - Google USB Driver (extras;google;usb_driver)
set FILE_ZIP=%ZIP_HOME%usb_driver_r11-windows.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/usb_driver_r11-windows.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\extras\google\


echo - Google Play Billing Library (extras;google;play_billing)
set FILE_ZIP=%ZIP_HOME%play_billing_r05.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/play_billing_r05.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\extras\google\


goto SKIP_EMU

echo ====
echo - Install Android Emulator (revision: 27.0.5)
mkdir %ANDROID_SDK_ROOT%\emulator
set FILE_ZIP=%ZIP_HOME%emulator-windows-4530189.zip
if not exist %FILE_ZIP% set FILE_ZIP=https://dl.google.com/android/repository/emulator-windows-4530189.zip
call :_UnZip %FILE_ZIP% %ANDROID_SDK_ROOT%\


:SKIP_EMU

rem ========
setx STUDIO_JDK "%JAVA_HOME%"
setx ANDROID_EMULATOR_HOME %ANDROID_EMULATOR_HOME%
setx ANDROID_SDK_ROOT %ANDROID_SDK_ROOT%
setx ANDROID_NDK_ROOT %ANDROID_NDK_ROOT%

setx PATH "%ANDROID_SDK_ROOT%\tools;%ANDROID_SDK_ROOT%\platform-tools;%PATH%"

exit


rem ============================================================
:_UnZip
echo //========
echo %1 - %2
%BAT_HOME%UnZip %1 %2
exit /b


● 3534162-studio.sdk-patcher.zip.bakの実行方法が謎

 Android Support Repository, SDK Patch Applier v4
- SDK Patch Applier v4 (patcher;v4)
- Google Play services (extras;google;google_play_services)
Preparing "Install SDK Patch Applier v4 (revision: 1)".
Downloading https://dl.google.com/android/repository/3534162-studio.sdk-patcher.zip.bak
"Install SDK Patch Applier v4 (revision: 1)" ready.


● 最初の Android Studioの設定時に Android 8.1のソースリストのインストールを要求されるのの回避策

 一番最初の Android Studioを起動して設定する時に Android 8.1(API level 27) のソースリストのインストールを要求されます。
 ソースリストは不要なのと SSDの少ないディスク容量を圧迫するので入れたくありません。

 しかし、最初の Android Studioを起動した時の設定画面でインストールをしないと先に進めません。
 それの回避策です。

 回避策:一回ダミーで android-27のソースをインストールして、
C:\Android\android-sdk\sources\android-27\package.xml
 の
package.xml
 ファイルをサルベージする。

 次回、新規インストール時に
C:\Android\android-sdk\sources\android-27\package.xml
 を配置する。

 package.xmlが存在する事で Android Studioの設定画面をダマす事ができる。

https://dl.google.com/android/repository/sources-27_r01.zip
 35.3MB



● java.io.FileNotFoundException: Entry fileTemplates // Singleton.java.ft not found

 上記の完全全自動バッチでインストールした場合は、上記の SDK Patch Applier v4が未適用なのが原因なのか、Android Studioで下記の警告が出ます。
 (なぜこの警告が出るのかの本当の原因は不明だが、通常のインストールでは出ないのでオフラインインストールが原因と思っている)
Entry fileTemplates//Singleton.java.ft not found in C:/Android/android-studio/lib/resources_en.jar
java.io.FileNotFoundException: Entry fileTemplates//Singleton.java.ft not found in C:/Android/android-studio/lib/resources_en.jar
	at com.intellij.util.io.URLUtil.openJarStream(URLUtil.java:103)
	at com.intellij.util.io.URLUtil.openStream(URLUtil.java:64)
	at com.intellij.ide.fileTemplates.impl.UrlUtil.loadText(UrlUtil.java:46)
	at com.intellij.ide.fileTemplates.impl.DefaultTemplate.loadText(DefaultTemplate.java:53)
	at com.intellij.ide.fileTemplates.impl.DefaultTemplate.<init>(DefaultTemplate.java:46)
	at com.intellij.ide.fileTemplates.impl.FileTemplatesLoader.loadDefaultsFromRoot(FileTemplatesLoader.java:192)
	at com.intellij.ide.fileTemplates.impl.FileTemplatesLoader.loadDefaultTemplates(FileTemplatesLoader.java:152)
	at com.intellij.ide.fileTemplates.impl.FileTemplatesLoader.<init>(FileTemplatesLoader.java:94)
 ~~ 略 ~~

 Android Studioの Helpから Edit Custom VM Optionsで下記の設定を追加すれば出なくなります。(なぜこの設定で出なくなるのかの理由は不明)
-Djdk.util.zip.ensureTrailingSlash=false

studio.exe.vmoptions
%UserProfile%\.AndroidStudio3.0\studio.exe.vmoptions
# custom Android Studio VM options, see https://developer.android.com/studio/intro/studio-config.html
-Djdk.util.zip.ensureTrailingSlash=false


● UnZip.exeは下記の物を使用する

 ZIPファイルおよびインターネットの ZIPファイルにも対応している優れもの!

2018/02/01
C# .NETで ZIPファイル解凍ツール UnZipをソースリスト 1行で自作する方法、Windows .NET専用
C# .NETで ZIPファイル解凍ツール UnZipをソースリスト 1行で自作する方法、Windows .NET専用

  Visual Studio 2013の C# .NET 4.5で ZipFile.ExtractToDirectoryを使い、UnZip解凍ツールを作成

● Java SE Development Kit 8u162 JDK 8.162のダウンロード

 Java SE Development Kit 8u162 JDK 8.162のダウンロード

Java SE Development Kit 8 Downloads

 JDK Java SE Development Kitをダウンロードする場合、ブラウザの画面操作で「Accept License Agreement」をチェックする必要が有ります。
 内部の処理的には HTTPリクエストヘッダーにクッキー情報を追加しています。
 "oraclelicense=accept-securebackup-cookie"

 Linux等の場合は wgetコマンドで簡単にできますが、Windowsの場合は wgetコマンドが標準で無いので C#の練習を兼ねて JdkDownloaderを作成しました。

 C#の WebClientクラスを使う事で簡単に JdkDownloaderを作成できました。
 ※ エラーチェックはしていないので何かエラーが発生すると例外でアプリが落ちます。

using System;
using System.Net;

namespace JdkDownloader
{
    class Program
    {
        static void Main(string[] args)
        {
            WebClient webClient = new WebClient();
            webClient.Headers.Add(HttpRequestHeader.Cookie, "oraclelicense=accept-securebackup-cookie");
            // Java SE Development Kit 8u162
            // http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-windows-i586.exe
            // String JDK_URL = @"http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-windows-i586.exe";

            // Java SE Development Kit 8u172
            // http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec242421181065cdc37240b08/jdk-8u172-windows-i586.exe

            // Java SE Development Kit 8u181
            // http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-windows-i586.exe
            String JDK_URL = @"http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-windows-i586.exe";

            String DOWNLOAD_PATH = @".\jdk-8u162-windows-i586.exe";
            webClient.DownloadFile(JDK_URL, DOWNLOAD_PATH);
            webClient.Dispose();
        }
    }
}

● curlや wgetで Oracle JDKをダウンロードする方法
curl -O -L --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-windows-i586.exe

wget --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-windows-i586.exe -O jdk-8u162-windows-i586.exe



Tags: [Android開発]



[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2018 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/android/android_develop_2018_auto_install_android_studio_suite/