android content providers
play

Android: Content Providers - PowerPoint PPT Presentation

Android: Content Providers -


  1. Алгоритмы и структуры данных Android: Content Providers Кузнецов Андрей Николаевич Санкт - Петербургский Государственный Политехнический Университет Creative Commons Attribution-ShareAlike 05.05.2016 1 3.0

  2. Creative Commons Attribution-ShareAlike 05.05.2016 2 3.0

  3. В предыдущих лекциях... See https://source.android.com/source/index.html Creative Commons Attribution-ShareAlike 05.05.2016 3 3.0

  4. В предыдущих лекциях... • Android Studio • Android SDK – http://developer.android.com/sdk/index.html • Eclipse IDE for Mobile Developers – http://eclipse.org/mobile/ • ADT Plugin для Eclipse – https://dl-ssl.google.com/android/eclipse/ • Java SE Development Kit 7 – http://www.oracle.com/technetwork/java/javase/do wnloads/jdk7-downloads-1880260.html Creative Commons Attribution-ShareAlike 05.05.2016 4 3.0

  5. В предыдущих лекциях... • Activities • Services • Content Providers • Broadcast Receivers • Intents As a developer we need only to call and extend these already defined classes to use in our application. Creative Commons Attribution-ShareAlike 05.05.2016 5 3.0

  6. В предыдущих лекциях... Creative Commons Attribution-ShareAlike 05.05.2016 6 3.0

  7. В предыдущих лекциях... • ./animator/* • ./layout/* • ./anim/* • ./menu/* • ./xml/* • ./raw/* • ./drawable/* • ./values/* – Bitmap files (png, 9.png, – arrays.xml jpg, gif) – colors.xml – State lists – dimens.xml – Shapes – strings.xml – Other drawables – styles.xml Creative Commons Attribution-ShareAlike 05.05.2016 7 3.0

  8. В предыдущих лекциях... • <resources_name> - <config_qualifier> – resources_name := anim, drawable, layout, menu, raw, value, xml – config_qualifier := qualifier1[-qualifier2 […]] • Примеры: – drawable-ldpi – drawable-en-notouch-12key – values-land-mdpi-v11 Creative Commons Attribution-ShareAlike 05.05.2016 8 3.0

  9. http://developer.andro id.com/guide/topics/re sources/providing- resources.html Creative Commons Attribution-ShareAlike 05.05.2016 9 3.0

  10. В предыдущих лекциях... <?xml version="1.0" encoding="utf-8"?> <activity-alias> <intent-filter> . . . </intent-filter> <manifest> <meta-data /> </activity-alias> <uses-permission /> <permission /> <service> <permission-tree /> <intent-filter> . . . </intent-filter> <permission-group /> <meta-data/> <instrumentation /> </service> <uses-sdk /> <uses-configuration /> <receiver> <uses-feature /> <intent-filter> . . . </intent-filter> <supports-screens /> <meta-data /> <compatible-screens /> </receiver> <supports-gl-texture /> <provider> <application> <grant-uri-permission /> <meta-data /> <activity> <path-permission /> <intent-filter> </provider> <action /> <category /> <uses-library /> <data /> </intent-filter> </application> <meta-data /> </activity> </manifest> Creative Commons Attribution-ShareAlike 05.05.2016 10 3.0

  11. Creative Commons Attribution-ShareAlike 05.05.2016 11 3.0

  12. В предыдущих лекциях... 1. Foreground process 2. Visible process 3. Service process 4. Background process 5. Empty process Creative Commons Attribution-ShareAlike 05.05.2016 12 3.0

  13. В предыдущих лекциях... 1. Do not block the UI thread – "application not responding" (ANR) dialog 2. Do not access the Android UI toolkit from outside the UI thread Creative Commons Attribution-ShareAlike 05.05.2016 13 3.0

  14. В предыдущих лекциях... Explicit Intent Implicit intent • Component • Action • Data • Category • Extras • Extras • Flags • Flags Creative Commons Attribution-ShareAlike 05.05.2016 14 3.0

  15. В предыдущих лекциях... Creative Commons Attribution-ShareAlike 05.05.2016 15 3.0

  16. В предыдущих лекциях... Creative Commons Attribution-ShareAlike 05.05.2016 16 3.0

  17. CONTENT PROVIDERS http://developer.android.com/guide/topics/providers/content-providers.html Creative Commons Attribution-ShareAlike 05.05.2016 17 3.0

  18. Content Provider • Стандартный интерфейс для предоставления структурированных данных из одного приложения в другое – Secure IPC – Может иметь собственный UI • Встроенные провайдеры: – Calendar, Contacts, Media Store, User Dictionary, etc. Creative Commons Attribution-ShareAlike 05.05.2016 18 3.0

  19. Content Provider & Resolver • Клиент работает с Content Resolver – android.content.ContentResolver • Content Resolver работает с Content Provider’ом – … extends android.content.ContentProvider • Content Provider получает запросы от клиента, обрабатывает и возвращает результат Creative Commons Attribution-ShareAlike 05.05.2016 19 3.0

  20. "CRUD" (create, retrieve, update, and delete) Content Resolver Content Provider • query • query • insert • insert • update • update • delete • delete Creative Commons Attribution-ShareAlike 05.05.2016 20 3.0

  21. Content Provider: Basics • Content Provider представляет данные в виде набора таблиц – Аналогично РБД word app id frequency locale _ID mapreduce user1 100 en_US 1 precompiler user14 200 fr_FR 2 Creative Commons Attribution-ShareAlike 05.05.2016 21 3.0

  22. Content Provider & Resolver Основные методы • Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) • Uri insert (Uri uri, ContentValues values) • int update (Uri uri, ContentValues values, String selection, String[] selectionArgs) • int delete (Uri uri, String selection, String[] selectionArgs) • String getType (Uri uri) – returns the MIME type of data in the content provider Creative Commons Attribution-ShareAlike 05.05.2016 22 3.0

  23. Content Provider Query & SQL mCursor = getContentResolver().query( UserDictionary.Words.CONTENT_URI, // The content URI of the words table mProjection, // The columns to return for each row mSelectionClause // Selection criteria mSelectionArgs, // Selection criteria mSortOrder); // The sort order for the returned rows Uri FROM table_name Uri maps to the table in the provider named table_name . projection col,col,col,... projection is an array of columns that should be included for each row retrieved. selection WHERE col = value selection specifies the criteria for selecting rows. selectionArgs (No exact equivalent. Selection arguments replace ? placeholders in the selection clause.) sortOrder ORDER BY col,col,... sortOrder specifies the order in which rows appear in the returned Cursor. Creative Commons Attribution-ShareAlike 05.05.2016 24 3.0

  24. Content Provider. URI • URI= scheme://host:port/path – URI authority = host:port • URI authority идентифицирует провайдера – content://user_dictionary/ • URI path идентифицирует – Таблицу • content://user_dictionary/words – Строку в таблице • content://user_dictionary/words/4 Creative Commons Attribution-ShareAlike 05.05.2016 25 3.0

  25. Content Provider: URI Замечание • Для работы с URI есть вспомогательные классы: – Uri – Uri.Builder – ContentUris • Uri singleUri = ContentUris.withAppendedId(UserDictionary.Words.CO NTENT_URI,4); Creative Commons Attribution-ShareAlike 05.05.2016 26 3.0

  26. query public abstract Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) Cursor mCursor = getContentResolver().query ( UserDictionary.Words.CONTENT_URI mProjection, // Which columns to return. mSelectionClause, // WHERE clause. mSelectionArgs, // WHERE clause value substitution People.NAME + " ASC"); // Sort order. // A "projection" defines the columns that will be returned for each row String[] mProjection = { UserDictionary.Words._ID, // Contract class constant for the _ID column name UserDictionary.Words.WORD, // Contract class constant for the word column name UserDictionary.Words.LOCALE // Contract class constant for the locale column name }; // Defines a string to contain the selection clause String mSelectionClause = UserDictionary.Words.WORD + " = ?"; // Initializes an array to contain selection arguments String[] mSelectionArgs = { “Search" }; Creative Commons Attribution-ShareAlike 05.05.2016 27 3.0

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend