第7章 深入理解ContentProvider
本章主要内容:
深入分析ContentProvider的创建和启动,以及SQLite相关的知识点。
深入分析Cursor query和close函数的实现。
深入分析ContentResolver openAssetFileDescriptor函数的实现。
本章所涉及的源代码文件名及位置:
ActivityManagerService. java(frameworks/base/services/java/com/android/server/am/ActivityManagerService.java)
ContextImpl. java(frameworks/base/core/java/android/app/ContextImpl.java)
ActivityThread. java(frameworks/base/core/java/android/app/ActivityThread.java)
MediaStore. java(frameworks/base/core/java/android/provider/MediaStore.java)
ContentResolver. java(frameworks/base/core/java/android/content/ContentResolver.java)
ContentProvider. java(frameworks/base/core/java/android/content/ContentProvider.java)
MediaProvider. java(package/providers/MediaProvider/src/java/com/android/MediaProvider/MediaProvider.java)
SQLiteDatabase. java(frameworks/base/core/java/android/database/sqlite/SQLiteDatabase.java)
SQLiteCompiledSql. java(frameworks/base/core/java/android/database/sqlite/SQLiteCompiledSql.java)
android_database_SQLiteDatabase. cpp(frameworks/base/core/jni/android_database_SQLiteDatabase.cpp)
android_database_SQLiteCompiledSql. cpp(frameworks/base/core/jni/android_database_SQLite-Compiled-Sql.cpp)
sqlite3_android. cpp(external/sqlite3/android/sqlite3_android.cpp)
SQLiteQueryBuilder. java(frameworks/base/core/java/android/database/sqlite/SQLiteQueryBuilder.java)
SQLiteCursorDriver. java(frameworks/base/core/java/android/database/sqlite/SQLiteCursorDriver.java)
SQLiteQuery. java(frameworks/base/core/java/android/database/sqlite/SQLiteQuery.java)
SQLiteCursor. java(frameworks/base/core/java/android/database/sqlite/SQLiteCursor.java)
SQLiteProgram. java(frameworks/base/core/java/android/database/sqlite/SQLiteProgram.java)
CursorToBulkCursorAdaptor. java(frameworks/base/core/java/android/database/CursorToBulkCursorAdaptor.java)
BulkCursorToCursorAdaptor. java(frameworks/base/core/java/android/database/BulkCursorToCursorAdaptor.java)
CursorWindow. java(frameworks/base/core/java/android/database/CursorWindow.java)
android_database_CursorWindow. cpp(frameworks/base/core/jni/android_database_CursorWindow.cpp)
CursorWindow. cpp(frameworks/base/libs/binder/CursorWindow.cpp)
android_database_SQLiteQuery. cpp(frameworks/base/core/jni/android_database_SQLiteQuery.cpp)
CursorWrapper. java(frameworks/base/core/java/android/database/CursorWrapper.java)
AbstractCursor. java(frameworks/base/core/java/android/database/AbstractCursor.java)
BulkCursorNative. java(frameworks/base/core/java/android/database/BulkCursorNative.java)
ParcelFileDescriptor. java(frameworks/base/core/java/android/os/ParcelFileDescriptor.java)
MediaProvider. java(packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java)
android_util_Binder. cpp(frameworks/base/core/jni/android_util_Binder.cpp)
Parcel. cpp(frameworks/base/libs/binder/Parcel.cpp)
binder. c(kernel/drivers/staging/android/binder.c)