پیکربندی پروژه

این راهنما الزامات پیکربندی ساخت را برای استفاده از Navigation SDK برای Android فهرست می‌کند. دستورالعمل ها فرض می کنند که شما یک Android IDE نصب کرده اید و با توسعه اندروید آشنا هستید.

حداقل الزامات برای استفاده از Navigation SDK

  • یک پروژه Google Cloud Console با فعال کردن Navigation SDK. برای تهیه، از نماینده پلتفرم Google Maps خود بپرسید.

  • برنامه شما باید Navigation SDK (نسخه 16) یا بالاتر را هدف قرار دهد.

  • برای اجرای برنامه‌ای که با Navigation SDK ساخته شده است، دستگاه Android باید سرویس‌های Google Play را نصب و فعال کند.

  • اسناد و متن مجوز باید به برنامه اضافه شود.

پروژه های خود را راه اندازی کنید: پروژه Google Cloud Console و پروژه Android

قبل از اینکه بتوانید یک برنامه بسازید یا آزمایش کنید، باید یک پروژه Cloud Console ایجاد کنید و اعتبارنامه های کلید API را اضافه کنید. برای دسترسی به Navigation SDK، پروژه باید دارای تدارکات باشد. به همه کلیدهای پروژه Cloud Console دسترسی یکسانی به Navigation SDK داده شده است. یک کلید می تواند بیش از یک پروژه توسعه مرتبط با آن داشته باشد. اگر قبلاً یک پروژه کنسول دارید، می توانید یک کلید به پروژه فعلی خود اضافه کنید.

برای راه اندازی

  1. در مرورگر وب مورد علاقه خود، مانند کروم، وارد Google Cloud Console شوید و پروژه Google Cloud Console خود را ایجاد کنید.
  2. در IDE خود، مانند Android Studio، یک پروژه توسعه برنامه Android ایجاد کنید و نام بسته را یادداشت کنید.
  3. برای دسترسی به Navigation SDK برای پروژه Google Cloud Console خود با نماینده پلتفرم Google Maps خود تماس بگیرید.
  4. در حالی که در داشبورد Google Cloud Console در مرورگر وب خود هستید، اعتبارنامه هایی ایجاد کنید تا یک کلید API با محدودیت ایجاد کنید.
  5. در صفحه کلید API ، روی برنامه‌های Android در قسمت محدودیت‌های برنامه * کلیک کنید.
  6. روی افزودن نام بسته و اثر انگشت کلیک کنید و سپس نام بسته پروژه توسعه خود و اثر انگشت SHA-1 را برای آن کلید وارد کنید.
  7. روی ذخیره کلیک کنید.

Navigation SDK را به برنامه خود اضافه کنید

Navigation SDK به عنوان یک بسته aar در دسترس است. پس از ایجاد پروژه توسعه، می توانید SDK را ادغام کنید. این دستورالعمل ها استفاده از Android Studio را برای IDE شما فرض می کند.

  1. فایل فشرده Navigation SDK را دانلود و از حالت فشرده خارج کنید.

  2. در Android Studio ، یک پروژه را باز کنید و بسته خدمات Google Play را با استفاده از مدیر SDK اضافه کنید.

  3. از فهرست فایل فشرده، libs/google_navigation.aar را در فهرست app/libs پروژه خود کپی کنید.

ساخت را پیکربندی کنید

پس از ایجاد پروژه، می توانید تنظیمات را برای ساخت و استفاده موفق از Navigation SDK پیکربندی کنید.

ویژگی های محلی را به روز کنید

  • در پوشه Gradle Scripts ، فایل local.properties را باز کنید و android.useDeprecatedNdk=true را اضافه کنید.

اسکریپت ساخت Gradle را به روز کنید

  • فایل build.gradle (Module:app) را باز کنید و از دستورالعمل‌های زیر برای به‌روزرسانی تنظیمات برای برآورده کردن الزامات Navigation SDK استفاده کنید و گزینه‌های بهینه‌سازی را نیز در نظر بگیرید.

    تنظیمات لازم برای Navigation SDK

    1. minSdkVersion را روی 16 یا بالاتر تنظیم کنید.
    2. برای تغییر مدیریت مجوزها به API، «targetSDKversion» را برای API 21 تنظیم کنید. برای نسخه‌های قبلی، باید به‌صراحت جریان‌های مجوز را در برنامه خود لحاظ کنید.
    3. یک تنظیم dexOptions اضافه کنید که javaMaxHeapSize را افزایش می دهد.
    4. مکان را برای کتابخانه های اضافی تنظیم کنید.
    5. repositories و dependencies را برای Navigation SDK اضافه کنید.
    6. شماره نسخه های موجود در وابستگی ها را با آخرین نسخه های موجود جایگزین کنید.

    تنظیمات اختیاری برای کاهش زمان ساخت

    • برای بهبود زمان ساخت برنامه خود
    • برای استفاده بهینه از وابستگی ها، ProGuard و Resource Shrinking را فعال کنید. Proguard کد و منابع استفاده نشده را از وابستگی ها حذف می کند. اگر مرحله پروگارد خیلی طولانی شد، فعال کردن Multidex برای کار توسعه را در نظر بگیرید.
    • تعداد ترجمه های زبان موجود در ساخت را کاهش دهید. در حین توسعه، resConfigs را برای یک زبان تنظیم کنید. برای ساخت نهایی، "resConfigs" را برای زبان هایی که واقعا استفاده می کنید تنظیم کنید. به‌طور پیش‌فرض، Gradle شامل رشته‌های منبع برای همه زبان‌هایی است که توسط Navigation SDK پشتیبانی می‌شوند.

در زیر نمونه‌ای از اسکریپت ساخت Gradle برای اپلیکیشن آورده شده است.

  
  apply plugin: 'com.android.application'

  ext {
      supportVersion = "27.1.1"
      lifecycle_version = "1.1.1"
  }

  android {
      compileSdkVersion 27
      buildToolsVersion '28.0.3'

      defaultConfig {
          applicationId "com.example.navigationapidemo"
          minSdkVersion 16
          targetSdkVersion 27
          versionCode 1
          versionName "1.0"
          resConfigs "en"
      }

      dexOptions {
          // This increases the amount of memory available to the dexer. This is
          // required to build apps using the Navigation SDK.
          javaMaxHeapSize "4g"
      }
      buildTypes {
          all {
              minifyEnabled true
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          }
      }
      compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
      }
  }

  // Specify where to find additional libraries and the location of google_navigation.aar file.
  repositories {
      flatDir {
          dirs 'libs'
      }
      google()
  }
  dependencies {
      api fileTree(include: ['*.jar'], dir: 'libs')

      // Include the Google Navigation API library
      api(name: 'google_navigation', ext: 'aar')

      // These dependencies are required for the Navigation API to function
      // properly at runtime.
      api "org.chromium.net:cronet-fallback:69.3497.100"
      // Optional for Cronet users:
      // api "org.chromium.net:cronet-api:69.3497.100"
      api "com.android.support:appcompat-v7:${supportVersion}"
      api "com.android.support:cardview-v7:${supportVersion}"
      api "com.android.support:design:${supportVersion}"
      api "com.android.support:mediarouter-v7:${supportVersion}"
      api "com.android.support:preference-v7:${supportVersion}"
      api "com.android.support:recyclerview-v7:${supportVersion}"
      api 'com.github.bumptech.glide:glide:4.9.0'
      api 'com.github.bumptech.glide:okhttp-integration:4.9.0'
      api "android.arch.lifecycle:common-java8:$lifecycle_version"
      api 'com.google.android.datatransport:transport-api:2.2.0'
      api 'com.google.android.datatransport:transport-backend-cct:2.2.0'
      api 'com.google.android.datatransport:transport-runtime:2.2.0'
      api 'joda-time:joda-time:2.9.9'

      // The Navigation SDK does not require the
      // Places API; however, the demo app for does.
      api 'com.google.android.gms:play-services-places:10.2.1'

      annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
  }

مانیفست برنامه خود را به روز کنید

  1. در پوشه Manifest ، فایل AndroidManifest.xml را باز کنید.

  2. کلید API خود را در عنصر <application> اضافه کنید. باید از کلید API تعریف شده در پروژه Google Cloud Console که در مرحله بالا توضیح داده شده است استفاده کنید.

    در مانیفست جزئی که در این مثال نشان داده شده است، می‌توانید YOUR_API_KEY با کلید API خود جایگزین کنید:

          <meta-data
              android:name="com.google.android.geo.API_KEY"
              android:value="YOUR_API_KEY"/>
    

    مانیفست کامل زیر تنظیمات کلید API و intent خالی MainActivity را نشان می دهد که در هنگام راه اندازی اجرا می شود.

    
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.navigationapidemo" >
    
          <application
              android:allowBackup="true"
              android:icon="@mipmap/ic_launcher"
              android:label="@string/app_name"
              android:supportsRtl="true"
              android:theme="@style/_AppTheme" >
    
              <meta-data
                  android:name="com.google.android.geo.API_KEY"
                  android:value="YOUR_API_KEY"/>
    
              <activity android:name=".MainActivity" >
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
                      <category android:name="android.intent.category.LAUNCHER" />
                  </intent-filter>
              </activity>
          </application>
        </manifest>
    
        ```
    

اسناد مورد نیاز را در برنامه خود قرار دهید

اگر از Navigation SDK برای Android در برنامه خود استفاده می کنید، باید متن منبع و مجوزهای منبع باز را به عنوان بخشی از بخش اعلامیه های قانونی برنامه خود قرار دهید.

می‌توانید متن منبع مورد نیاز و مجوزهای منبع باز را در فایل زیپ Navigation SDK for Android بیابید:

  • NOTICE.txt
  • LICENSES.txt

گام بعدی

نحوه ترسیم مسیر را بیاموزید.