- Следующий пост будет охватывать:
- Создание нового приложения для Android
 - Как назвать ваше приложение и модули
- Имя приложения
 - название проекта
 - Имя пакета
 
 - Создание простого приложения hello world
 - Как добавить элемент управления списком
 - Понимание и добавление операторов импорта
 - Добавление кода Java для заполнения элемента управления списком строк
 - Загрузите библиотеку httpclient от Apache Foundation
 - Добавление библиотеки httpclient в наш проект Android
 - Добавление кода для вызова в мобильные службы Azure
 - Добавление разрешений, позволяющих нашему приложению Android подключаться к мобильным службам Azure.
 - Добавление всего Java-кода, необходимого для вызова мобильных служб Azure.
 
 
Вам понадобится пробная учетная запись для Windows Azure
- Пожалуйста, зарегистрируйтесь здесь:
 
Создание нового приложения (Android, конечно)
- Это предполагает, что вы установили:
- Затмение
 - Android SDK и набор инструментов
 
 
Наименование вашего проекта Android
- Здесь вы укажете:
- Имя приложения
 - название проекта
 - Имя пакета
 
 
Выбор изображений по умолчанию, картинки и текста
- Вот как вы можете маркировать свое приложение
 - Мы просто выберем значения по умолчанию
 
Выбор пустой активности по умолчанию
- Мы будем строить все с нуля, вместо того, чтобы инструментарий давал нам интерфейс мастер / детали.
 - Мы просто добавим один элемент управления списком
 
Выбор имени активности по умолчанию
- Называя нашу деятельность.
 - Это приведет к тому, что некоторые из основных файлов интерфейса пользователя и код будут названы
 
Просмотр проекта по умолчанию, созданного мастером Eclipse
- Теперь мы начнем редактировать код и строить интерфейс
 
Запуск шаблона Android по умолчанию
- Давайте запустим приложение, чтобы увидеть интерфейс Hello World по умолчанию
 - Мы добавим наш собственный код в ближайшее время.
 
Просмотр запущенного проекта
- Это просто чтобы убедиться, что все инструменты работают.
 - Честно говоря, эмуляторы не совсем надежны.
 - Во многих случаях мне приходилось запускать образцы несколько раз, чтобы увидеть правильный результат.
 
Работа с элементом управления ListView
- Адаптеры и элементы управления ListView
- ListView получает свои данные через адаптер.
 - Адаптер также определяет способ отображения каждой строки в ListView.
 - Адаптер назначается списку с помощью метода setAdapter объекта ListView.
 - Android предоставляет несколько стандартных адаптеров; мы будем использовать ArrayAdapter
- ArrayAdapter может обрабатывать данные на основе массивов или java.util.List.
 
 
 
Открытие текстового редактора и добавление элемента управления ListView
- Теперь мы добавим наш элемент управления ListView
 - Это простой случай изменения этого файла XML
 
Реализация элемента управления ListView
- Нам просто нужно вставить следующий код.
 
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"
    android:layout_height="match_parent" >
 
    <ListView
        android:id="@+id/mylist"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        tools:context=".MainActivity" >
    </ListView>
 
</RelativeLayout>
Изменение MainActivity.java — добавление операторов «import»  
- Я представлю весь модуль исходного кода (MainActivity.java) в ближайшее время
 - Эти операторы импорта необходимы для просмотра списка
 - Для кода httpclient, необходимого для вызова мобильных служб Azure, потребуется больше
 
Добавление кода в onCreate ()
- onCreate () — метод запуска, в который мы можем добавить некоторый код.
 - Мы заполним элемент управления listview некоторыми простыми строками.
- В следующем разделе мы позвоним в мобильные службы Azure для получения данных.
 - Но сначала давайте разберемся с управлением списком.
 
 - Сначала мы добавим некоторый код для добавления элементов в элемент управления ListView.
 - Обратите внимание на следующее:
- Мы получаем идентификатор для элемента управления ListView, чтобы мы могли поговорить с ним (примечание 1)
 - Создайте строковый массив того, что мы добавим в просмотр списка (примечание 2).
 - Создайте ArrayAdapter и свяжите строки из предыдущего шага. (заметка 3)
 - Свяжите ArrayAdapter с элементом управления ListView (примечание 4).
 
 
Просмотр приложения до сих пор
- Наш простой пример работает до сих пор.
 - Следуй этим шагам:
- В меню выберите «Выполнить / Отладить как / Приложение Android».
 
 
Загрузите библиотеку httpclient
- Следуй этим шагам:
- Ссылка находится в верхнем лифте.
 - Это будет почтовый файл.
 - Извлеките httpclient-4.2.1.jar в папку.
 - Перейдите в папку.
 
 
Копирование библиотеки httpclient в наш проект
- Это необходимо, потому что мы будем звонить в мобильные службы Azure.
- httpclient.jar содержит код, который позволяет использовать для вызовов http нашу мобильную службу Azure.
 
 
Редактирование кода для вызова в мобильной службе Azure
- Значения массива теперь будут заполняться значениями, которые мы получаем из мобильной службы Azure.
 - Несколько вещей, на которые стоит обратить внимание:
- URL-адрес, который будет вызывать клиент Android:
- public static final String kGetTodosUrl = https://brunotodoservice.azure-mobile.net/tables/TodoItem;
- Напомним, что brunotodoservice — это то, что мы определили при создании нашей службы Windows Azure Mobile.
 
 
 - public static final String kGetTodosUrl = https://brunotodoservice.azure-mobile.net/tables/TodoItem;
 
 - URL-адрес, который будет вызывать клиент Android:
 
Открытие файла AndroidManifest.xml
- Нам нужно разрешить подключение к интернету для нашего приложения.
 - Это делается в файле AndroidManifest.xml
 
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.androidandmobileservices"
    android:versionCode="1"
    android:versionName="1.0" >
 
   <uses-permission android:name="android.permission.INTERNET"></uses-permission>
 
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />
 
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>
- Наше приложение потерпит неудачу без этой строки.
 - Требуется.
 
Добавление кода в MainActivity.java
- Теперь вы измените файл MainActivity.java для вызова мобильных служб Azure.
 - Вы будете две вещи из портала, чтобы написать этот код:
- URL-адрес для мобильных служб Azure
 - Идентификатор приложения для мобильных служб Azure
 
 - Есть много важных заявлений, чтобы добавить
 
package com.example.androidandmobileservices;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
// Add these import statements
import android.util.Log;     // for logging
import org.json.JSONArray;   // for JSONArray
import org.json.JSONObject;  // for JSONObject
import java.io.InputStream;         // for reading the response as bytes
import java.io.BufferedInputStream; // for reading the response as buffered bytes  
import java.io.BufferedReader;      // for reading bytes in a buffered manner
import java.io.InputStreamReader;   // for reading bytes into BufferedReader
import java.net.HttpURLConnection;  // for HttpURLConnection
import java.net.URL;                // for URL
public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Define needed constants: (1) url to our mobile service; 
        // (2) service app id (from Azure Mobile Service Website)
        final String mobileServiceUrl = 
                "https://brunotodoservice.azure-mobile.net/tables/TodoItem";
        final String mobileServiceAppId = 
                "FIoFunrUPBDhaFmmEXFHJCZoFEZILW45";
        try
        {
            // Start building the request object to get the data 
            URL url = new URL(mobileServiceUrl);
            // Build a request object to connect to Azure Mobile Services
            HttpURLConnection urlRequest = (HttpURLConnection) url.openConnection();
            // Reading data so the http verb is "GET"
            urlRequest.setRequestMethod("GET");
            // Start building up the request header
            // (1) The data is JSON format 
            // (2) We need to pass the service app id (we get this from the Azure Portal)
            urlRequest.addRequestProperty("Content-Type", "application/json");
            urlRequest.addRequestProperty("ACCEPT", "application/json");
            urlRequest.addRequestProperty("X-ZUMO-APPLICATION", mobileServiceAppId);
            // We hold the json results
            JSONObject[] todos = null;
            // The listView control that will populate with data
            ListView listView = (ListView) findViewById(R.id.mylist);
            
            try    
            {
                // Prepare some objects to receive the bytes of data
                // from the Azure Mobile Service
                InputStream in = new BufferedInputStream(
                        urlRequest.getInputStream());
                BufferedReader bufferReader = new BufferedReader(
                        new InputStreamReader(in));
                // responseString will hold our JSON data
                StringBuilder responseString = new StringBuilder();
                String line;
                // Loop through the buffered input, reading JSON data
                while ((line = bufferReader.readLine()) != null) 
                {
                    responseString.append(line);
                }
                // Convert responseString into a JSONArray
                JSONArray jsonArray = new JSONArray(responseString.toString());
                // Will hold an array of JSON objects
                todos = new JSONObject[jsonArray.length()];
                // values is very important. It is the string array that will
                // get assigned to our ListView control.
                String[] values = new String[jsonArray.length()];
                String s;
                // Loop through the objects. The ultimate goal is to have
                // an array of strings called "values"
                for (int i = 0; i < jsonArray.length(); i++) 
                {
                    todos[i] = jsonArray.getJSONObject(i);
                    values[i] = todos[i].get("text").toString();
                }
                // Create an array adapter using the string array called "values"
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                        android.R.layout.simple_list_item_1, android.R.id.text1, values);
    
                // Assign adapter to ListView
                listView.setAdapter(adapter); 
    
            
            } catch (Exception ex) {
                Log.e("MainActivity Failure", "Error getting JSON from Server: "+ ex.getMessage());
            } finally {
                urlRequest.disconnect();
            }
          } catch (Exception ex) {
            Log.e("MainActivity Failure", "Error opening HTTP Connection: " + ex.getMessage());
       }
        
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
- Теперь мы закончили и усвоили следующие уроки:
- Как настроить наши мобильные службы Azure
 - Как добавить таблицы, вставить данные в реляционную базу данных
 - Как использовать http для выдачи команд GET и POST
 - Как использовать низкоуровневые инструменты (Fiddler) для взаимодействия с мобильными службами Azure
 - Как создать приложение для Android для чтения данных из мобильных служб Azure.
 
 - Я прощаюсь с вами. Спасибо за чтение.
 
Вам понадобится пробная учетная запись для Windows Azure
- Пожалуйста, зарегистрируйтесь здесь:
 
Спасибо ..
Я ценю, что вы нашли время, чтобы прочитать этот пост. Я с нетерпением жду ваших комментариев.
                























