(. 13) .
, . , . . .
. 13.
( 14) , . (AndroidManifest.xml) Android-, . , , ( ).
. 14.
- Android
Android 4.0 ( 14 API). API , , SDK . 14 API 90,4% , GooglePlay Store.
Android - Java [29]. API Java [15, c. 52-53]. IDE Andriod Studio [1] ( ) Genymotion Virtual Box [5]. .
sqlite3 Android. SQLite - , SQL: , . - 250 . SQLite Android-, . .
-
. 15 - . , SimpleLocation. , getContext DBWorker , - . , , . , , Notification NotificationManager.
|
|
. 15. -
. 16 - . , , ( getNewContextsFromServer()). , ( sID id ). - ( insertToDB). , , .
.
. 16.
(. 17).
. 17.
Activities
Activities . (ctivity) - , , . Activity . , , . , Activity , GUI setContentView(View). Android- , (extends) Activity. AndroidManifest.xml. (AuthActivity.java), (RegisterActivity.java) (MainActivity.java). MainActivity.java , , .
Fragments
(fragments). Fragment , . Android API 11, , . , , [25, c. 202-210].
, Fragments. , : (ContextList.java), / (ContextFragment.java), / (Point.java), (TaskList.java), (SeparatedFragment.java), / (Task.java) (Settings.java).
Adapters
Android [25, c.180-181]. android.widget.AdapterView. , ListView ( ), GridView (), Spinner ( ). . , . [18, c.198-200]. Adapters: (PointListAdapter.java), (ContextListAdapter.java), (TaskListAdapter.java, SeparatedTaskListAdapter.java), (SubTaskListAdapter.java) (DatePickerAdapter.java) (TimePickerAdapter.java).
|
|
Providers
, Providers. ContextContext.java, PointContext.java, TaskContext.java, SubTaskContext.java, UserContext.java , (, , , , ). DBWorker.java , (, , ).
RestAPI
RestAPI , . RequestContext.java , , ( ) JSON. ResponseContext.java JSON. , WebWorker.java.
API Android AsyncTask, . AsyncRequest.java (extends) AsyncTask , RequestContext.java ResponseContext.java.
Background
Background , . AlarmReceiver.java c BroadcastReceiver - [25, c.493-507]. . . . ContextNotify.java . AsyncTask.
Widget
, . . , - . , , [18, c. 509-518]. , , , .
, , Widget. AppWidget.java . WidgetRemoteViewsFactory.java . WidgetService.java .
. (Android-) .
REST- HTTP. REST (Representational state transfer) , World Wide Web, , , -. REST HTTP- 2000 [4].
|
|
REST URL. , irinn.us/api/v1.0/tasks/, - irinn.us/api/v1.0/contexts/. 10 id, irinn.us/api/v1.0/tasks/10.
HTTP. HTTP : GET (), PUT (), POST (), DELETE ().
:
GET irinn.us/api/v1.0/tasks/ .
GET irinn.us/api/v1.0/tasks/3/ id = 3.
PUT irinn.us/api/v1.0/tasks/3/ ( ).
POST irinn.us/api/v1.0/tasks/ ( ).
DELETE irinn.us/api/v1.0/tasks/3/ id = 3.
HTTP Basic Authentication. - (HTTP POST HTTP GET), , base64- credentials.
JSON [25, c.278-289]. Android JSON json.org.
JSON, Task, ( ):
{ "checked": 0, "contexts": [3, 2], "due_date": 355342131, "id": 41, "last_change": 1234343, "location_notice": 0, "notice": 0, "repeat_id": 0, "subtask": [5,6] "text": " " } |
1.
:
{ "tasks": [ { "checked": 0, "contexts": [ 3 ], "due_date": 123124123, "id": 22, "last_change": 1, "location_notice": 0, "notice": 0, "repeat_id": 0, "subtask": null, "text": " " } ] } |
2.
- JSON:
{ "message": "message": "Wrong input format" } |
3.
planium.apk . .
(. 17). email . , .
. 17.
, (. 18). . .
|
|
. 18
, .
, (. 19).
. 19.
. 20 . Navigation Driver, Google [8]. : , , , .
. 20.
(. 21). . . . , (. 22).
. 21.
. 22.
. 23 . . , .
. 23.
. 24 / . . .
. 24. /
(. 20) , . 25. ( ) .
. 25.
(. 36) , (. 26).
. 26.
. 27 .
. 27.
(. 28).
. 28.
(. 20) (. 29).
. 29.
. 30 / . ( ), , , . . ( , , , , ) .
. 30.
. 31. . . 32 . 33 .
. 31.
. 32.
. 33.
. 34 , . Notificatin . .
. 34. .
- , , (. 35).
. 35.
. 36 , . , , .
|
|
. 36.
. 37 , , . , , - , , . 30 , , .
. 37.
Android Studio Java Android SDK 14 . sqlite3 .
. 38.
. 38.
/app/src/main/java/. . /app/sr/main/res/ , (drawable), (values) (layout).
Android- [18, c.288-290]. app/src/main/ .
manifest. application.
manifest package :
package="com.example.maria.ToDo " |
4. AndroidManifest.xml
uses-permission , . :
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.VIBRATE" /> |
5.
application , . application.
activity . , .
MainActivity. RegisterActivity, AuthActivity:
<activity android:name=".Activities.MainActivity" android:label="@string/app_name" > </activity> <activity android:name=".Activities.AuthActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Activities.RegisterActivity" android:label="@string/title_activity_register" > </activity> |
6.
AuthActivity, . , MainActivity.
service . , :
<service android:name=".Widget.WidgetService" android:exported="false" android:permission="android.permission.BIND_REMOTEVIEWS" /> |
7.
receiver .
. AlarmReceiver . AppWidget .
<receiver android:name=".Services.AlarmReciever" android:process=":remote" /> <receiver android:name=".Widget.AppWidget" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/new_app_widget_info" /> </receiver> |
8.
uses-library , . Google, . , , [6]:
<uses-library android:name="com.google.android.maps" /> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyCwPRFb3zxhSRw_697sXDGiHHut2xUqF9A" /> |
9. com.google.android.maps
Gradle
Java . Gradle , Apache Ant Apache Maven.
Gradle .
Gradle , , , , , .
gradle- build.gradle (/app/build.gradle):
apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.example.maria.testnavbar" minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar', '*.aar']) compile 'com.google.android.gms:play-services:6.5.87' compile 'com.android.support:appcompat-v7:22.1.1' } |
10. build.gradle
android { } , -. SDK (compileSdkVersion), (buildToolsVersion).
defaultConfig { } sdk (minSdkVersion).
dependencies { } , .