המדריך הזה מפרט את הדרישות להגדרת build לשימוש ב-SDK לניווט ל-Android. ההוראות מבוססות על ההנחה שמותקנת אצלכם סביבת פיתוח משולבת (IDE) של Android ואתם מכירים את הפיתוח של Android.
דרישות מינימליות לשימוש ב-API של הניווט
פרויקט במסוף Google Cloud שבו מופעל ניווט SDK. כדי לנהל את התצורה, פנו לנציג שלכם בפלטפורמה של מפות Google.
האפליקציה חייבת לטרגט ל-Navigation SDK (גרסה 16) ואילך.
כדי להפעיל אפליקציה שנוצרה עם ה-SDK של הניווט במכשיר Android, אפליקציית Google Play Services צריכה להיות מותקנת ומופעלת.
יש להוסיף לאפליקציה את הטקסט של פרטי הייחוס והרישוי.
הגדרת הפרויקטים שלך: פרויקט במסוף Google Cloud ופרויקט Android
כדי ליצור או לבדוק אפליקציה, קודם צריך ליצור פרויקט במסוף Cloud ולהוסיף פרטי כניסה של מפתח API. הפרויקט חייב לכלול הקצאת הרשאות כדי לגשת ל-API של הניווט. כל המפתחות בפרויקט מסוף Cloud מקבלים את אותה גישה ל-API של הניווט. למפתח יכול להיות משויך יותר מפרויקט פיתוח אחד. אם כבר יש לכם פרויקט במסוף, אתם יכולים להוסיף מפתח לפרויקט הנוכחי.
כדי להגדיר
- בדפדפן האינטרנט המועדף עליכם, כמו Chrome, נכנסים אל Google Cloud Console ויוצרים פרויקט במסוף Google Cloud.
- ב-IDE, כמו ב-Android Studio, יוצרים פרויקט פיתוח אפליקציה ל-Android ורושמים את שם החבילה.
- תוכלו לפנות לנציג שלכם בפלטפורמה של מפות Google כדי לקבל גישה ל-Navigation SDK בפרויקט במסוף Google Cloud.
- מתוך מרכז השליטה של מסוף Google Cloud בדפדפן האינטרנט, יוצרים פרטי כניסה על מנת ליצור מפתח API עם הגבלות.
- בדף של מפתח API, לוחצים על 'אפליקציות ל-Android' בקטע *Application restrictions.
- לוחצים על Add את שם החבילה ואת טביעת האצבע, ואז מזינים את שם החבילה של פרויקט הפיתוח ואת טביעת האצבע מסוג SHA-1 של המפתח.
- לוחצים על שמירה.
הוספת ה-SDK לניווט לאפליקציה
ה-SDK לניווט זמין כחבילת Aar לאחר יצירת פרויקט הפיתוח, ניתן לשלב את ה-SDK. ההוראות האלה מבוססות על ההנחה שהשימוש ב-Android Studio בסביבת הפיתוח המשולבת (IDE).
צריך להוריד את קובץ ה-zip של ה-SDK של הניווט ולחלץ אותו.
ב-Android Studio, פותחים פרויקט ומוסיפים את החבילה של שירותי Google Play באמצעות מנהל ה-SDK.
מספריית קובץ ה-ZIP, מעתיקים את
libs/google_navigation.aar
לספרייהapp/libs
של הפרויקט.
מגדירים את ה-build
לאחר יצירת הפרויקט, ניתן לקבוע את ההגדרות לפיתוח מוצלח של ה-build ולשימוש ב-API של הניווט.
עדכון הנכסים המקומיים
- בתיקייה Gradle Scripts, פותחים את הקובץ
local.properties
ומוסיפים אתandroid.useDeprecatedNdk=true
.
עדכון סקריפט ה-build של Gradle
פותחים את הקובץ
build.gradle (Module:app)
ופועלים לפי ההנחיות הבאות כדי לעדכן את ההגדרות כך שיעמדו בדרישות של Navigation SDK, וכדאי לשקול להגדיר גם את אפשרויות האופטימיזציה.ההגדרות הנדרשות עבור Navigation SDK
- צריך להגדיר את
minSdkVersion
ל-16 ומעלה. - צריך להגדיר את 'targetSDKversion' ל-API 21 כדי להעביר את הטיפול בהרשאות ל-API. עבור גרסאות קודמות, עליך לכלול באופן מפורש תהליכי הרשאות באפליקציה.
- כדאי להוסיף הגדרה של
dexOptions
שמגדילה אתjavaMaxHeapSize
. - אפשר להגדיר את המיקום לספריות נוספות.
- הוסף את
repositories
ואתdependencies
עבור ה-SDK לניווט. - מחליפים את מספרי הגרסאות שביחסי התלות בגרסאות העדכניות ביותר שזמינות.
הגדרות אופציונליות לקיצור זמן ה-build
- כדי לשפר את זמן ה-build של האפליקציה
- כדי לייעל את השימוש ביחסי התלות, מפעילים את ProGuard ואת כיווץ המשאבים. ProGuard מסיר מיחסי תלות קוד ומשאבים שלא נמצאים בשימוש. אם שלב ProGuard פועל יותר מדי זמן, כדאי להפעיל את multidex לביצוע עבודת פיתוח.
- מצמצמים את מספר התרגומים לשפות שכלולות ב-build. מגדירים את
resConfigs
לשפה אחת במהלך הפיתוח. לגרסת ה-build הסופית, צריך להגדיר 'resConfigs' לשפות שבהן אתם משתמשים בפועל. כברירת מחדל, Gradle כולל מחרוזות משאבים לכל השפות שנתמכות על ידי ה-SDK של הניווט.
- צריך להגדיר את
בהמשך מוצגת דוגמה לסקריפט ה-build של 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'
}
עדכון המניפסט של האפליקציה
פותחים את הקובץ
AndroidManifest.xml
בתיקייה מניפסט.מוסיפים את מפתח ה-API בתוך הרכיב
<application>
. עליכם להשתמש במפתח ה-API שמוגדר בפרויקט במסוף Google Cloud כפי שמתואר בשלב למעלה.במניפסט חלקי שמוצג בדוגמה הזו, צריך להחליף את
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 באפליקציה, עליכם לכלול טקסט שיוך ורישיונות קוד פתוח בקטע ההודעות המשפטיות של האפליקציה.
אפשר למצוא את טקסט השיוך ואת הרישיונות של הקוד הפתוח הנדרשים בקובץ ה-ZIP של Navigation SDK ל-Android:
NOTICE.txt
LICENSES.txt
השלב הבא
למידע נוסף על שרטוט מסלול.