คู่มือนี้แสดงข้อกำหนดการกำหนดค่าบิลด์สำหรับการใช้ Navigation SDK สำหรับ Android คำแนะนำนี้จะถือว่าคุณได้ติดตั้ง Android IDE แล้วและคุ้นเคยกับการพัฒนาซอฟต์แวร์ Android
ข้อกำหนดขั้นต่ำสำหรับการใช้ Navigation SDK
โปรเจ็กต์ Google Cloud Console ที่เปิดใช้ Navigation SDK สำหรับการจัดสรร โปรดสอบถามตัวแทนของ Google Maps Platform
แอปของคุณต้องกำหนดเป้าหมายไปยัง Navigation SDK (เวอร์ชัน 16) ขึ้นไป
หากต้องการเรียกใช้แอปที่สร้างด้วย Navigation SDK อุปกรณ์ Android ต้องติดตั้งและเปิดใช้บริการ Google Play
ต้องเพิ่มการระบุแหล่งที่มาและข้อความการอนุญาตให้ใช้สิทธิลงในแอป
ตั้งค่าโปรเจ็กต์: โปรเจ็กต์ Google Cloud Console และโปรเจ็กต์ Android
คุณต้องสร้างโปรเจ็กต์ Cloud Console และเพิ่มข้อมูลเข้าสู่ระบบคีย์ API ก่อนจึงจะสร้างหรือทดสอบแอปได้ โปรเจ็กต์ต้องมีการจัดสรรเพื่อเข้าถึง Navigation SDK คีย์ทั้งหมดภายในโปรเจ็กต์ Cloud Console จะได้รับสิทธิ์เข้าถึง Navigation SDK ในแบบเดียวกัน คีย์หนึ่งๆ จะมีโปรเจ็กต์การพัฒนาที่เชื่อมโยงอยู่ได้มากกว่า 1 โปรเจ็กต์ หากมีโปรเจ็กต์คอนโซลอยู่แล้ว คุณเพิ่มคีย์ลงในโปรเจ็กต์ปัจจุบันได้
วิธีการตั้งค่า
- ในเว็บเบราว์เซอร์ที่คุณชื่นชอบ เช่น Chrome ให้ลงชื่อเข้าใช้คอนโซล Google Cloud แล้วสร้างโปรเจ็กต์ Google Cloud Console
- ใน IDE เช่น Android Studio ให้สร้างโครงการการพัฒนาแอป Android และบันทึกชื่อแพ็กเกจ
- ติดต่อตัวแทน Google Maps Platform เพื่อให้สิทธิ์เข้าถึง SDK การนำทางสำหรับโปรเจ็กต์คอนโซล Google Cloud
- ขณะอยู่ในหน้าแดชบอร์ด Google Cloud Console ในเว็บเบราว์เซอร์ ให้สร้างข้อมูลเข้าสู่ระบบเพื่อสร้างคีย์ API ที่มีข้อจำกัด
- ในหน้าคีย์ API ให้คลิกแอป Android ในส่วน *การจำกัดแอปพลิเคชัน
- คลิกเพิ่มชื่อแพ็กเกจและลายนิ้วมือ จากนั้นป้อนชื่อแพ็กเกจของโปรเจ็กต์การพัฒนาและลายนิ้วมือ SHA-1 สำหรับคีย์ดังกล่าว
- คลิกบันทึก
เพิ่ม Navigation SDK ลงในแอปของคุณ
Navigation SDK พร้อมใช้งานในแพ็กเกจ Aar หลังจากสร้างโปรเจ็กต์การพัฒนาแล้ว คุณจะผสานรวม SDK ได้ วิธีการเหล่านี้มีไว้สำหรับการใช้ Android Studio สำหรับ IDE
ดาวน์โหลดและแตกไฟล์ ZIP ของ Navigation SDK
ใน Android Studio ให้เปิดโปรเจ็กต์และเพิ่มแพ็กเกจบริการ Google Play โดยใช้เครื่องมือจัดการ SDK
จากไดเรกทอรีไฟล์ ZIP ให้คัดลอก
libs/google_navigation.aar
ลงในไดเรกทอรีapp/libs
ของโปรเจ็กต์
กำหนดค่าบิลด์
หลังจากสร้างโปรเจ็กต์แล้ว คุณจะกำหนดการตั้งค่าสำหรับบิลด์และการใช้ Navigation SDK ที่ประสบความสำเร็จได้
อัปเดตพร็อพเพอร์ตี้ในพื้นที่
- ในโฟลเดอร์สคริปต์ Gradle ให้เปิดไฟล์
local.properties
และเพิ่มandroid.useDeprecatedNdk=true
อัปเดตสคริปต์บิลด์ Gradle
เปิดไฟล์
build.gradle (Module:app)
และใช้หลักเกณฑ์ต่อไปนี้เพื่ออัปเดตการตั้งค่าให้เป็นไปตามข้อกำหนดของ Navigation SDK และพิจารณาตั้งค่าตัวเลือกการเพิ่มประสิทธิภาพด้วยการตั้งค่าที่จำเป็นสำหรับ Navigation SDK
- ตั้งค่า
minSdkVersion
เป็น 16 ขึ้นไป - ตั้งค่า "targetSDKversion" สำหรับ API 21 เพื่อเปลี่ยนสิทธิ์การจัดการไปยัง API สำหรับเวอร์ชันก่อนหน้า คุณต้องระบุขั้นตอนการให้สิทธิ์ในแอปอย่างชัดแจ้ง
- เพิ่มการตั้งค่า
dexOptions
ที่จะเพิ่มjavaMaxHeapSize
- กำหนดตำแหน่งที่ตั้งสำหรับคลังเพิ่มเติม
- เพิ่ม
repositories
และdependencies
สำหรับ Navigation SDK - แทนที่หมายเลขเวอร์ชันในทรัพยากร Dependency ด้วยเวอร์ชันล่าสุดที่มีอยู่
การตั้งค่าที่ไม่บังคับเพื่อลดเวลาบิลด์
- เพื่อปรับปรุงเวลาบิลด์ของแอป
- หากต้องการเพิ่มประสิทธิภาพการใช้ทรัพยากร Dependency ให้เปิดใช้ ProGuard และการลดขนาดทรัพยากร Proguard จะนำโค้ดและทรัพยากรที่ไม่ได้ใช้ออกจากทรัพยากร Dependency หากขั้นตอน ProGuard ทำงานยาวเกินไป ให้พิจารณาเปิดใช้ Multidex สำหรับงานการพัฒนา
- ลดจำนวนภาษาที่รวมอยู่ในบิลด์ ตั้งค่า
resConfigs
สำหรับ 1 ภาษาระหว่างการพัฒนา สำหรับบิลด์สุดท้าย ให้ตั้งค่า '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'
}
อัปเดตไฟล์ Manifest ของแอป
เปิดไฟล์
AndroidManifest.xml
ในโฟลเดอร์ Manifestเพิ่มคีย์ API ของคุณภายในองค์ประกอบ
<application>
คุณต้องใช้คีย์ API ที่กำหนดไว้ในโปรเจ็กต์คอนโซล Google Cloud ตามที่อธิบายไว้ในขั้นตอนด้านบนในไฟล์ Manifest บางส่วนที่แสดงในตัวอย่างนี้ คุณจะต้องแทนที่
YOUR_API_KEY
ด้วยคีย์ API ของคุณเอง ดังนี้<meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY"/>
ไฟล์ Manifest ที่สมบูรณ์ด้านล่างแสดงการตั้งค่าสำหรับคีย์ 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 ในแอป คุณต้องใส่ข้อความระบุแหล่งที่มาและใบอนุญาตโอเพนซอร์สเป็นส่วนหนึ่งของส่วนประกาศทางกฎหมายของแอป
คุณสามารถดูข้อความระบุแหล่งที่มาและใบอนุญาตโอเพนซอร์สที่จำเป็นได้ในไฟล์ ZIP การนำทาง SDK สำหรับ Android ดังนี้
NOTICE.txt
LICENSES.txt
ขั้นตอนถัดไป
เรียนรู้วิธีวางแผนเส้นทาง