manager - android studio tutorial




Android sdk ইনস্টলেশন স্বয়ংক্রিয়ভাবে একটি উপায় আছে? (8)

'Y' সহ সমস্ত লাইসেন্সের উত্তর দিতে, আপনি স্ক্রিপ্টে এটি ব্যবহার করতে পারেন:

(while :
do
  echo 'y'
  sleep 2
done) | android update sdk -u .....

এখন আমি অ্যান্ড্রয়েড এসডিকে অ্যাড এভিড ম্যানেজারটি ডাউনলোড এবং ইন্সটল করতে হবে এবং তারপরে API এর মাধ্যমে সরঞ্জামগুলি ইনস্টল করব। এই প্রক্রিয়া স্বয়ংক্রিয়ভাবে একটি উপায় আছে?


আপনি সম্ভবত অটোমেশন পেতে পারেন কাছাকাছি:

$ android update sdk --no-ui

অ্যান্ড্রয়েড স্বয়ংক্রিয় আপডেটের জন্য এই অপশন প্রদান:

Action "update sdk":
  Updates the SDK by suggesting new platforms to install if available.
Options:
  -f --force    Forces replacement of a package or its parts, even if something has been modified
  -u --no-ui    Updates from command-line (does not display the GUI)
  -o --obsolete Installs obsolete packages
  -t --filter   A filter that limits the update to the specified types of packages in the form of
                a comma-separated list of [platform, tool, platform-tool, doc, sample, extra]
  -s --no-https Uses HTTP instead of HTTPS (the default) for downloads
  -n --dry-mode Simulates the update but does not download or install anything

আপনি যদি ইনস্টলেশনের জন্য উপলব্ধ প্যাকেজগুলি তালিকাভুক্ত করতে চান তবে আপনি এটি ব্যবহার করতে পারেন

$ android list sdk

এবং আপনি উদাহরণস্বরূপ, প্যাকেজের একটি আদেশ তালিকা পাবেন

Packages available for installation or update: 9
   1- ARM EABI v7a System Image, Android API 15, revision 2
   2- Intel x86 Atom System Image, Android API 15, revision 1
   3- Android Support, revision 8
   4- Google AdMob Ads SDK, revision 6
   5- Google Analytics SDK, revision 2
   6- Google Play APK Expansion Library, revision 1
   7- Google Play Billing Library, revision 2
   8- Google Play Licensing Library, revision 2
   9- Google Web Driver, revision 2

এছাড়াও আপনি যদি --filter বিকল্পটি ব্যবহার করেন তবে আপনি কেবল একটি পছন্দসই --filter আপডেট সীমাবদ্ধ করতে পারেন

$ android update sdk --filter <component> --no-ui

যেখানে উপাদান এক বা একাধিক

  • android list sdk দ্বারা ফেরত সংখ্যা (অর্থাৎ 1 , প্যাকেজ সূচক হিসাবে এছাড়াও জানেন)
  • অ্যাড-অন
  • ডক
  • অতিরিক্ত
  • মাচা
  • প্ল্যাটফর্ম-টুল
  • নমুনা
  • সূত্র
  • সিস্টেম-ইমেজ
  • টুল

অথবা এক বা একাধিক নির্দিষ্ট সনাক্তকারী হতে পারে। উদাহরণস্বরূপ, যদি আপনি নির্দিষ্ট প্যাকেজের একটি ছোট সেট ডাউনলোড করতে চান তবে আপনি এটি করতে পারেন:

$ android update sdk -u --filter platform-tools,android-16,extra-android-support

এবং আপনি প্ল্যাটফর্ম সরঞ্জাম, API লেভেল 16 এবং সমর্থন প্যাকেজ জার পাবেন। আপনি যদি শুধুমাত্র বিল্ড মেশিন তৈরি করেন তবে এটি সত্যিই কার্যকর এবং আপনি যে অতিরিক্ত জিনিসটি ব্যবহার করবেন না তা ডাউনলোড করার জন্য অর্থ প্রদান করতে হবে।

উপলব্ধ বিকল্পগুলি দেখতে আপনি --help ব্যবহার করতে পারেন, উদাহরণস্বরূপ

$ android --help list sdk

       Usage:
       android [global options] list sdk [action options]
       Global options:
  -h --help       : Help on a specific command.
  -v --verbose    : Verbose mode, shows errors, warnings and all messages.
     --clear-cache: Clear the SDK Manager repository manifest cache.
  -s --silent     : Silent mode, shows errors only.

                   Action "list sdk":
  Lists remote SDK repository.
Options:
  -o --obsolete  : Deprecated. Please use --all instead.
  -a --all       : Lists all available packages (including obsolete and
                   installed ones)
     --proxy-host: HTTP/HTTPS proxy host (overrides settings if defined)
     --proxy-port: HTTP/HTTPS proxy port (overrides settings if defined)
  -s --no-https  : Uses HTTP instead of HTTPS (the default) for downloads.
  -e --extended  : Displays extended details on each package
  -u --no-ui     : Displays list result on console (no GUI) [Default: true]

হালনাগাদ

সর্বশেষ সংস্করণ sdkmanager পরিচয় করিয়ে sdkmanager , একটি কমান্ড লাইন সরঞ্জাম যা আপনাকে Android SDK এর জন্য প্যাকেজগুলি দেখতে, ইনস্টল করতে, আপডেট করতে এবং আনইনস্টল করার অনুমতি দেয়।

sdkmanager সরঞ্জামটি Android SDK সরঞ্জাম প্যাকেজ ( 25.2.3 এবং উচ্চতর ) এ সরবরাহ করা হয় এবং এটি Android_sdk android_sdk/tools/bin/ অবস্থিত।

  sdkmanager [--uninstall] [<common args>] [--package_file <file>] [<packages>...]
  sdkmanager --update [<common args>]
  sdkmanager --list [<common args>]
  sdkmanager --licenses [<common args>]

In its first form, installs, or uninstalls, or updates packages.
    By default, the listed packages are installed or (if already installed)
    updated to the latest version.

    --uninstall: uninstalled listed packages.

    <package> is a sdk-style path (e.g. "build-tools;23.0.0" or
             "platforms;android-23").
    <package-file> is a text file where each line is a sdk-style path
                   of a package to install or uninstall.
    Multiple --package_file arguments may be specified in combination
    with explicit paths.

In its second form (with --update), all installed packages are
    updated to the latest version.

In its third form, all installed and available packages are printed
    out.

In its fourth form (with --licenses), show and offer the option to
     accept licenses for all available packages that have not already been
     accepted.

Common Arguments:
    --sdk_root=<sdkRootPath>: Use the specified SDK root instead of the SDK 
                              containing this tool

    --channel=<channelId>: Include packages in channels up to <channelId>.
                           Common channels are:
                           0 (Stable), 1 (Beta), 2 (Dev), and 3 (Canary).

    --include_obsolete: With --list, show obsolete packages in the
                        package listing. With --update, update obsolete
                        packages as well as non-obsolete.

    --no_https: Force all connections to use http rather than https.

    --proxy=<http | socks>: Connect via a proxy of the given type.

    --proxy_host=<IP or DNS address>: IP or DNS address of the proxy to use.

    --proxy_port=<port #>: Proxy port to connect to.

* If the env var REPO_OS_OVERRIDE is set to "windows",
  "macosx", or "linux", packages will be downloaded for that OS.

সুতরাং, প্যাকেজ চালানোর আপডেট

$ sdkmanager --update

লাইসেন্স গ্রহণ করতে

$ yes | sdkmanager --licenses

আমি একটি Ruby স্ক্রিপ্ট একত্র করা যা SDK ডাউনলোড এবং ইনস্টল করতে সাহায্য করে যা প্রম্পট ছাড়া ইনস্টল। https://github.com/ayvazj/andenv


একটি নবীন অ্যান্ড্রয়েড বিকাশকারীর জন্য, কিন্তু একজন অভিজ্ঞ জাভা বিকাশকারীর জন্য, এটি নির্ভর করে কোনটি নির্ভরশীলতাগুলি জানার জন্য সত্যিই বিচলিত, এমনকি যদি আপনি উপরের সমস্ত দুঃস্বপ্নগুলি অতিক্রম করেন। আমার সহকর্মী আমাকে অ্যান্ড্রয়েড স্টুডিও ব্যবহার করার পরামর্শ দিয়েছেন (যা ইন্টেলিজ ভিত্তিক :-) বিশেষ করে উপরে দুঃস্বপ্নের কারণে। আমি তার পরামর্শ অনুসরণ করে। কিন্তু আমি ইনস্টলেশনের জন্য ডিফল্ট গ্রহণ করে নি এবং আমার সফ্টওয়্যার ড্রাইভে এটি ইনস্টল করার চেষ্টা করেছি। এটি একটি দুঃস্বপ্ন হতে পরিণত। SDK কথোপকথন ঝুলে লাগছিল এবং সব সময়ে স্বজ্ঞাত ছিল না। আমি এখানে শেষ কেন যা। উপরে পড়ার পর, আমি স্টুডিওকে আরেকটি চেষ্টা করেছিলাম, এবং এই সময় অন্তরঙ্গতার জন্য সমস্ত ডিফল্ট গ্রহণ করেছিলাম। হেই প্রস্টো ... এটি সিডিএল-সিফ্ট-এস এবং এসকিডি-র কোনও কথোপকথন ছাড়াই কয়েকটি সংলাপে সমস্ত SDK নির্ভরতা (মূল অনুমান করছি যা আমি অনুমান করছি) যত্ন নিলাম। আমি তাই একটি নববধূ জন্য এটি সুপারিশ করবে। এখানে ডাউনলোড হিসাবে পুডিং প্রমাণ:

আমি ডাউনলোড এবং ইনস্টল Sudio সংস্করণ: উইন্ডোজ সংস্করণ: এবং এখানে তার ভাল জিনিস পরে পরে:

আন্তরিকভাবে এটা আপনার জন্য কাজ করে আশা করি !!


তবুও শুধুমাত্র আরেকটি স্ক্রিপ্ট ডাউনলোড করতে হবে, অ- {অলৌকিক, উৎস, এমুলেটর-চিত্র, ডক} প্যাকেজগুলি:

#!/bin/bash
set -e

# cd into where tools/android can be found
if [[ -d "$ANDROID_HOME" ]]; then
  cd "$ANDROID_HOME"
elif [[ -x "$(dirname "$0")/tools/android" ]]; then
  cd "$(dirname "$0")"
else
  echo "FAILED: Cannot find ANDROID_HOME/tools/android"
  exit 1
fi

android () {
  "$(dirname $0)/tools/android" "[email protected]"
}

needed_packages () {
  android list sdk -u -s -e         \
    | grep '^id:'                   \
    | cut -d'"' -f2                 \
    | grep -v 'source'              \
    | grep -v 'sys-img'             \
    | grep -v 'doc'                 \
    | paste -d, -s -
}

main () {
  (while : ; do
  echo 'y'
  sleep 1
  done) | android update sdk -u -s -a -t "$(needed_packages)"
}

main

কিছু অংশ এই থ্রেড অন্যান্য উত্তর থেকে নেওয়া হয়।


নতুন অ্যান্ড্রয়েড সংস্করণে (যেমন 25.2.5 ) আমরা sdkmanager ( android কমান্ডের পরিবর্তে) ব্যবহার করা উচিত

একটি প্যাকেজ ইনস্টল করার উদাহরণ:

android-sdk/tools/bin/sdkmanager "extras;android;m2repository"

সমস্ত উপলব্ধ প্যাকেজ একটি তালিকা পেতে কমান্ড:

 android-sdk/tools/bin/sdkmanager --verbose --list

এই ওয়েব পৃষ্ঠাটি এসডিকে-সরঞ্জামগুলির জন্য ডাউনলোড লিঙ্ক তালিকাবদ্ধ করে:

এখানে একটি ওপেন সোর্স রিপোজিটরি docker-android একটি লিঙ্ক রয়েছে যা ডকার চিত্রটিতে Android ইনস্টল করতে পারে।

আপনিও এই একই প্রশ্নে উত্তরগুলি খুঁজে পেতে পারেন : স্বয়ংক্রিয়ভাবে সমস্ত SDK লাইসেন্সগুলি গ্রহণযোগ্য



sdkmanager.bat --licenses স্বয়ংক্রিয়ভাবে উইন্ডোজ-এ প্রম্পট (আপনি এটি ইনস্টলেশনের জন্য অটোমেশন মাধ্যমে ইনস্টল করছেন বলে) বলুন ... এটি চালান না। এটি মধ্যে পাইপ y কিভাবে কিভাবে চিন্তা করার চেষ্টা সময় নষ্ট করবেন না। আমি চেষ্টা করেছিলাম; অপ্রত্যাশিত ব্যর্থ।

বরং - একবার এটি চালান, এবং এটি নোট করুন যে এটি c:\android\android-sdk\licenses ফাইল তৈরি করে (যেখানে আপনি c:\android\android-sdk\tools\bin\sdkmanager.bat - আপনার ইনস্টল রুট পরিবর্তিত হতে পারে)।

ঐ ফাইলগুলি নিন এবং তাদের কোথাও রাখুন আপনি তাদের স্বয়ংক্রিয় সেটআপ স্ক্রিপ্টগুলিতে থেকে তাদের দখল করতে পারেন। ব্যক্তিগতভাবে, আমার বিষ বিষাক্ত, তাই:

# Note to future-us:
# These are magical files generated by running `c:/android/android-sdk/tools/bin/sdkmanager.bat --licenses`
# This, delightfully, is interactive, and wants to _actually_ read the keyboard buffer.
# That's reputedly possible via SendKeys. I elected to not try that.
# So, instead:
# 1) remote to an instance like a cave-dweller
# 2) run `c:/android/android-sdk/tools/bin/sdkmanager.bat --licenses` in a prompt.
# 3) _actually type_ `y` however many godforsaken times you need to.
# 4) meticulously harvest `c:/android/android-sdk/licenses/*` to this task.
#    (you don't need the newline that they thoughtfully put before the hash in each file).
- name: set up android licenses by hand
  win_lineinfile:
    path: c:/android/android-sdk/licenses/{{ item.name }}
    line: "{{ item.line }}"
    create: true
  with_items:
    - {name: "android-googletv-license", line: "SOME HASH"}
    - {name: "android-sdk-license", line: "SOME OTHER HASH"}
    ...




android-avd