प्रोजेक्ट कॉन्फ़िगरेशन

इस गाइड में Android के लिए नेविगेशन SDK टूल का इस्तेमाल करने के लिए, बिल्ड कॉन्फ़िगरेशन से जुड़ी ज़रूरी शर्तों की जानकारी दी गई है. निर्देशों में यह माना जाता है कि आपने Android IDE इंस्टॉल किया है और आपको Android के डेवलपमेंट के बारे में जानकारी है.

नेविगेशन SDK टूल इस्तेमाल करने के लिए ज़रूरी शर्तें

  • Google Cloud Console प्रोजेक्ट, जिसमें नेविगेशन SDK टूल चालू हो. प्रावधान करने के लिए, अपने Google Maps Platform प्रतिनिधि से संपर्क करें.

  • आपके ऐप्लिकेशन को नेविगेशन SDK टूल (वर्शन 16) या उसके बाद के वर्शन को टारगेट करना होगा.

  • नेविगेशन SDK टूल की मदद से बना ऐप्लिकेशन चलाने के लिए, Android डिवाइस पर Google Play services इंस्टॉल और चालू होनी चाहिए.

  • एट्रिब्यूशन और लाइसेंस देने वाले टेक्स्ट को ऐप्लिकेशन में जोड़ा जाना चाहिए.

अपने प्रोजेक्ट सेट अप करें: Google Cloud Console प्रोजेक्ट और Android प्रोजेक्ट

ऐप्लिकेशन बनाने या उसकी जांच करने से पहले, आपको Cloud Console प्रोजेक्ट बनाना होगा और एपीआई कुंजी के क्रेडेंशियल जोड़ने होंगे. नेविगेशन SDK टूल को ऐक्सेस करने के लिए, प्रोजेक्ट में प्रावधान होना चाहिए. Cloud Console प्रोजेक्ट में मौजूद सभी कुंजियों को नेविगेशन SDK टूल का एक जैसा ऐक्सेस दिया जाता है. किसी कुंजी के साथ एक से ज़्यादा डेवलपमेंट प्रोजेक्ट जुड़े हो सकते हैं. अगर आपके पास पहले से कोई कंसोल प्रोजेक्ट है, तो अपने मौजूदा प्रोजेक्ट में कुंजी जोड़ी जा सकती है.

सेट अप करने के लिए

  1. Chrome जैसे अपने पसंदीदा वेब ब्राउज़र में, Google Cloud Console में साइन इन करें और अपना Google Cloud Console प्रोजेक्ट बनाएं.
  2. Android Studio जैसे अपने IDE में, Android ऐप्लिकेशन डेवलपमेंट प्रोजेक्ट बनाएं और पैकेज का नाम नोट करें.
  3. अपने Google Cloud Console प्रोजेक्ट के लिए, नेविगेशन SDK टूल का ऐक्सेस देने के लिए, अपने Google Maps Platform के प्रतिनिधि से संपर्क करें.
  4. अपने वेब ब्राउज़र में Google Cloud Console के डैशबोर्ड पर, क्रेडेंशियल बनाएं और पाबंदियों के साथ एपीआई पासकोड जनरेट करें.
  5. एपीआई पासकोड पेज पर, *ऐप्लिकेशन पर पाबंदियां वाले सेक्शन में Android ऐप्लिकेशन पर क्लिक करें.
  6. पैकेज का नाम और फ़िंगरप्रिंट जोड़ें पर क्लिक करें. इसके बाद, अपने डेवलपमेंट प्रोजेक्ट के पैकेज का नाम और उस कुंजी के लिए SHA-1 फ़िंगरप्रिंट डालें.
  7. सेव करें पर क्लिक करें.

अपने ऐप्लिकेशन में नेविगेशन SDK टूल जोड़ना

नेविगेशन SDK टूल, aar बंडल के तौर पर उपलब्ध है. डेवलपमेंट प्रोजेक्ट बनाने के बाद, SDK टूल को इंटिग्रेट किया जा सकता है. ये निर्देश आपके IDE के लिए Android Studio का इस्तेमाल करते हैं.

  1. नेविगेशन SDK टूल की ZIP फ़ाइल डाउनलोड करें और उसे अनज़िप करें.

  2. Android Studio में, कोई प्रोजेक्ट खोलें और SDK मैनेजर का इस्तेमाल करके, Google Play services का पैकेज जोड़ें.

  3. ZIP फ़ाइल डायरेक्ट्री से, libs/google_navigation.aar को अपने प्रोजेक्ट की app/libs डायरेक्ट्री में कॉपी करें.

बिल्ड को कॉन्फ़िगर करें

प्रोजेक्ट बनाने के बाद, नेविगेशन SDK टूल के सफल बिल्ड और इस्तेमाल के लिए सेटिंग कॉन्फ़िगर की जा सकती हैं.

स्थानीय प्रॉपर्टी अपडेट करें

  • gradle Scripts फ़ोल्डर में, local.properties फ़ाइल खोलें और android.useDeprecatedNdk=true जोड़ें.

Gradle बिल्ड स्क्रिप्ट अपडेट करना

  • build.gradle (Module:app) फ़ाइल खोलें और नेविगेशन SDK की ज़रूरतों को पूरा करने के लिए सेटिंग अपडेट करने के लिए, नीचे दिए गए दिशा-निर्देशों का पालन करें. साथ ही, ऑप्टिमाइज़ेशन के विकल्प सेट करें.

    नेविगेशन SDK टूल के लिए ज़रूरी सेटिंग

    1. minSdkVersion को 16 या उससे ज़्यादा पर सेट करें.
    2. अनुमतियों को एपीआई पर शिफ़्ट करने के लिए, एपीआई 21 के लिए 'targetSDKversion' सेट करें. पिछले वर्शन के लिए, आपको अपने ऐप्लिकेशन में अनुमतियों के फ़्लो को साफ़ तौर पर शामिल करना होगा.
    3. dexOptions की ऐसी सेटिंग जोड़ें जो javaMaxHeapSize को बढ़ाती है.
    4. अतिरिक्त लाइब्रेरी के लिए लोकेशन सेट करें.
    5. नेविगेशन SDK टूल के लिए, repositories और dependencies जोड़ें.
    6. डिपेंडेंसी में वर्शन नंबर को सबसे नए उपलब्ध वर्शन से बदलें.

    बिल्ड का समय कम करने के लिए वैकल्पिक सेटिंग

    • ऐप्लिकेशन के बिल्ड टाइम को बेहतर बनाने के लिए
    • डिपेंडेंसी के इस्तेमाल को ऑप्टिमाइज़ करने के लिए, ProGuard और संसाधन को छोटा करने की सुविधा को चालू करें. ProGuard इस्तेमाल न किए गए कोड और संसाधनों को डिपेंडेंसी से हटा देता है. अगर प्रोगार्ड चरण बहुत लंबे समय तक चलते हैं, तो डेवलपमेंट से जुड़े काम के लिए मल्टीडेक्स को चालू करें.
    • बिल्ड में शामिल भाषाओं के अनुवाद की संख्या कम करें. डेवलपमेंट के दौरान, एक भाषा के लिए resConfigs सेट करें. फ़ाइनल बिल्ड के लिए, 'resConfigs' को उन भाषाओं के लिए सेट करें जिनका आप असल में इस्तेमाल करते हैं. डिफ़ॉल्ट रूप से, Gradle में उन सभी भाषाओं के लिए संसाधन स्ट्रिंग शामिल होती हैं जो नेविगेशन 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. मेनिफ़ेस्ट फ़ोल्डर में, AndroidManifest.xml फ़ाइल खोलें.

  2. <application> एलिमेंट में अपनी एपीआई कुंजी जोड़ें. आपको ऊपर चरण में बताए गए अपने Google Cloud Console प्रोजेक्ट में बताई गई एपीआई कुंजी का इस्तेमाल करना होगा.

    इस उदाहरण में दिखाए गए आंशिक मेनिफ़ेस्ट में, आपको YOUR_API_KEY को अपनी एपीआई कुंजी से बदलना होगा:

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

    नीचे दिया गया पूरा मेनिफ़ेस्ट, एपीआई पासकोड की सेटिंग और स्टार्टअप पर चलने वाले MainActivity के लिए खाली intent दिखाता है.

    
      <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>
    
        ```
    

अपने ऐप्लिकेशन में ज़रूरी एट्रिब्यूशन शामिल करें

अगर आपके ऐप्लिकेशन में Android के लिए नेविगेशन SDK टूल का इस्तेमाल किया जाता है, तो आपको अपने ऐप्लिकेशन के कानूनी नोटिस वाले सेक्शन में, एट्रिब्यूशन टेक्स्ट और ओपन सोर्स लाइसेंस शामिल करने होंगे.

आपको ज़रूरी एट्रिब्यूशन टेक्स्ट और ओपन सोर्स लाइसेंस, Android zip फ़ाइल के लिए नेविगेशन SDK टूल में मिल सकते हैं:

  • NOTICE.txt
  • LICENSES.txt

अगला कदम

किसी रास्ते की जानकारी देने का तरीका जानें.