在此步驟中,咱們將在 Android Studio 中建立一個全新的項目,以在示例中使用。若是您還沒有運行 Studio,如今請將其打開。java
輸入「BannerExample」做爲應用的名稱,另外輸入要爲應用使用的公司網域。Android Studio 會自動肯定一個合適的項目位置,但您能夠根據須要隨時更改項目位置。android
在下一個屏幕上,針對設備規格選擇Phone and Tablet(手機和平板電腦),平臺 SDK 最低版本爲9。該版本是 Google 移動廣告 SDK 支持的最低版本。編程
爲了讓此示例簡單易懂,咱們在此屏幕上選擇Blank Activity(空白活動)。app
在此屏幕上,您能夠爲應用的活動及其相關資源選擇名稱。咱們在此示例中使用默認名稱,所以只需點擊Finish(完成)按鈕。編輯器
點擊Finish(完成)後,您將獲得一個只包含一個活動的工做項目。請嘗試編譯並運行該項目(從Run(運行)菜單中選擇Run 'app'(運行「應用」))。此時您將會在另外一個灰色空白屏幕上看到一條「Hello world!」消息。請不要着急,咱們會在後續步驟中添加更多內容。工具
若是你還不熟悉Android應用的開發,請查看有關USB調試和使用虛擬設備的教程。你須要執行這兩項操做中的的一項才能運行您的新應用並查看其外觀。佈局
Android SDK Manager是Android版程序包管理器。您可使用它來下載要集成到應用中的SDK部件。這些部件不只包括代碼庫,還包括構建工具以及適用於模擬器的系統映像等內容。測試
在示例中,咱們使用SDK Manager下載Google Repository,該存儲庫包括不少預構建的工件,使用Android Studio可輕鬆將這些工件加入項目中。咱們感興趣的工件play-services-ads包含適用Google Play 服務廣SDK的資源和通過編譯的Java 代碼。這聽起來很複雜,但後面您將會看到,經過組合使用SDK Manager和Gradle,能夠輕鬆下載和加入正確的代碼。gradle
Google Repository包含針對Google移動廣告SDK 的Gradle工件,您的應用可使用它們來請求和展現廣告。請打開SDK Manager以確保您使用的是最新版本。您能夠經過選擇「Tools」(工具)>「Android」>「SDK Manager」來查看 SDK Manager 是不是最新版本。優化
在Android SDK Manager 窗口中,選擇Extras文件夾下的Google Repository,而後按Install Packages(安裝程序包)並接受許可協議以開始下載。若是Install Packages(安裝程序包)按鈕不能使用,請不要擔憂。這偏偏說明您已經擁有最新版本,所以無需在 SDK Manager 中進行任何操做。
Gradle 是一款免費的開源構建系統,提供了不少面向 Android 開發者的便捷功能(如您即將看到的依賴關係管理功能)。若是您之前沒有使用過 Gradle,請訪問gradle.org以詳細瞭解Gradle的工做方式。
在這一步驟中,您將要修改build.gradle文件,新項目中有兩個這樣的文件。一個位於 BannerExample 根文件夾中,是項目級的文件,其中的設置會影響整個項目;另外一個文件是應用級的文件,其中的設置是針對項目中的單個應用的,它保存在BannerExample/app文件夾中。若是項目包含多個應用,則每一個應用都擁有一個單獨的應用級 build.gradle 文件。
安裝Google Repository 後,您須要更新您的應用以引用其中的Google Play 服務SDK。爲此,您能夠在應用級的build.gradle文件中添加一行依賴關係。請在BannerExample/app/文件夾中找到該文件並將其打開。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.google.android.gms:play-services-ads:7.5.0'
}
更新依賴關係部分以加入最新的 Google Play 服務 SDK。
您可能會在 Android Studio 窗口頂部看到一條警告消息,提示您Gradle 須要執行gradle sync。若是出現這種狀況,請點擊Sync Now(當即同步)。Gradle 將會刷新項目的庫,以涵蓋您剛剛添加的依賴關係。
請嘗試從新構建您的項目(Run(運行)菜單中的 Run 'app'(運行「應用」))以確保正確編譯全部內容。您不會看到任何變化,但添加 Google Play 服務是在應用中投放廣告的第一步。
每一款 Android 應用都使用一個名爲「清單」的文件來向 Android 系統介紹本身。此文件中一般包含以下信息:應用所需的權限,應用包含的活動等。有關清單文件及其工做方式的詳細信息,請參閱應用清單簡介。
您已擁有一個包含Google Play服務的可正常運行的應用,如今須要修改該應用的清單文件,以加入移動廣告 SDK 所需的權限、版本號和活動定義。請打開BannerExample/app/src/main/AndroidManifest.xml進行修改。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.gms.example.bannerexample" >
<!-- Include required permissions for Google Mobile Ads to run-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application android:allowBackup="true" android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!--This meta-data tag is required to use Google Play Services.-->
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity android:name=".MainActivity"android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!--Include the AdActivity configChanges and theme. -->
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
</application>
</manifest>
您須要完成如下三項更改:
1:爲INTERNET和ACCESS_NETWORK_STATE添加兩個<uses-permission>標記。INTERNET的標記是必需的,用於訪問互聯網以發送廣告請求。ACCESS_NETWORK_STATE是可選的,用於在發出廣告請求前檢查是否有可用的互聯網鏈接。
2:添加一個引用Google Play 服務版本的<meta-data>標記。這會讓 Android 知道您的應用但願使用哪一個版本的服務。
3:添加具備configChanges和theme屬性的<activity>元素。當橫幅廣告被點擊或展現插頁式廣告時,SDK 會使用此活動,並且與其餘活動同樣,必須在展現以前在清單中聲明此活動。
請從新構建該項目以確保全部更改均正確完成。如今您應該仍看到相同的「Hello world!」消息,但經過正確配置應用清單,您的應用將可以使用移動廣告。
廣告單元 ID是爲您的應用中展現廣告的位置指定的惟一標識符。若是您的應用包含兩個活動(每一個活動分別展現一個橫幅廣告),則會有兩個廣告單元,各自擁有本身的ID。
爲了讓您的新應用展現廣告,您須要在其中加入廣告單元 ID。請打開應用的字符串資源文件,該文件位於BannerExample/app/src/main/res/values/strings.xml。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">My Application</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string>
</resources>
添加一個新的<string>標記(如上所示)。請注意,上面提供的廣告單元 ID僅用於測試。經過它您能夠獲取一個橫幅廣告示例,並確保您的實現正確無誤。在開發和測試您的應用時,您應該始終使用測試廣告,使用已發佈的廣告進行測試會違反admob政策,可能會致使您的賬戶被暫停。請參見addTestDevice方法的文檔,以詳細瞭解如何使用您的廣告單元 ID 得到測試廣告。
雖然這不是一項強制要求,但將您的廣告單元ID值存儲在資源文件中是很好的作法。隨着您的應用不斷髮展以及廣告發布逐步成熟,您偶爾會須要更改 ID值。若是您確保 ID 值始終都在資源文件中,那麼您就無需搜索整個代碼來進行查找。
五:在主活動佈局中放置 AdView
佈局文件包含針對活動、片斷和列表項等內容的視覺設計的 XML 定義。在這一步驟中,咱們將修改主活動的佈局文件,以便在其底部加入一個AdView。您能夠經過 Java 代碼以編程方式向活動添加內容,但利用佈局文件是更好的方法,由於可將顯示內容和行爲分離開來。
還須要執行兩個步驟,您的應用就能夠展現廣告了。首先,您須要修改主活動的佈局以加入一個AdView。請在編輯器中打開BannerExample/app/src/main/res/layout/activity_main.xml。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView android:text="@string/hello_world" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>
</RelativeLayout>
將如下兩項內容添加到 XML:
1:一個用於廣告的命名空間:http://schemas.android.com/apk/res-auto。
2:一個針對 AdView 的新元素。系統會要求您提供layout_width和layout_height。您能夠將這兩項均設置爲wrap_content。在AdView標記中,將adSize設置爲BANNER並將adUnitId設置爲@string/banner_ad_unit_id。
若是您查看AdView標記中的最後一個參數,將會看到該參數名爲adUnitId。該參數是在請求廣告時AdView 使用的廣告單元ID。在本示例中,咱們讓該參數引用您在最後一步中添加的字符串資源,以便AdView 使用該值。
您須要完成的最後一項更改是嚮應用的主活動類添加一些 Java 代碼,以便將廣告加載到AdView。
打開您的MainActivity.java文件。該文件位於BannerExample/app/src/main/java/文件夾中,但具體的子目錄路徑取決於您在上文中建立項目時使用的網域。在編輯器中打開該文件後,在MainActivity類中查找onCreate方法:
package ...
import ...
import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
public class MainActivity extends ActionBarActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
}
}
請執行如下兩項更改:
1:導入AdRequest和AdView類。
2:添加將在佈局中找到AdView的代碼,並建立AdRequest,而後使用它將廣告加載到AdView中。
完成這兩項更改後,您已大功告成!如今,您應用的主活動中包含一個具備完整功能的AdView。
如今您的應用可使用 Google 移動廣告 SDK 展現廣告。請從新運行您的應用,您會看到設備屏幕底部展現的測試橫幅廣告:
恭喜您!您已成功將橫幅廣告集成到應用中。
經過上面的教程能夠看出KeyMob是 國內開發者專業服務的一個很不錯的工具,是目前國內首傢俱有隨意自由切換平臺,無需單獨SDK集成,自由訂價,自自主銷售廣告,廣告互推,應用內交叉推廣 的廣告聚合平臺。該平臺將整合國內外主流移動廣告平臺,並對廣告功能進行統一管理、動態配置,廣告主和開發者均可以經過簡單的操做輕鬆實現對多家廣告平臺 的搭配使用。並能輔助開發者過市場審覈,客服很好。優勢小而精,專作廣告服務,對各個廣告平臺進行精選,集成方便快捷,支持多;缺點是發展得比較晚,系統 在不斷升級優化之中。