Red de conocimientos sobre prescripción popular - Conocimiento del confinamiento - Describa brevemente qué métodos de almacenamiento de datos proporciona la plataforma Android.

Describa brevemente qué métodos de almacenamiento de datos proporciona la plataforma Android.

El almacenamiento de datos es el más utilizado en el desarrollo. Hay cinco formas principales de implementar el almacenamiento de datos en la plataforma Android.

Tipo 1: use SharedPreferences para almacenar datos

SharedPreferences es una clase de almacenamiento liviana en la plataforma Android. Guarda principalmente algunas configuraciones de uso común, como el estado de la ventana, generalmente en Actividad. El estado de ventana sobrecargada enSaveInstanceState generalmente se guarda mediante SharedPreferences, que proporciona los tipos de cadenas convencionales Long entero, Int entero y String en la plataforma Android.

Su esencia es almacenar datos de pares clave-valor basados ​​en archivos XML, que generalmente se utilizan para almacenar información de configuración simple.

La ubicación de almacenamiento está en el directorio /data/data/lt; nombre del paquete gt;

El objeto SharedPreferences en sí solo puede obtener datos y no admite almacenamiento ni modificación. La modificación del almacenamiento se implementa a través del objeto Editor.

Los pasos para implementar el almacenamiento SharedPreferences son los siguientes:

1. Obtener el objeto SharedPreferences según el contexto

2. obtener el objeto Editor.

3. Almacene datos de pares clave-valor a través del objeto Editor.

4. Envíe datos a través del método commit().

En comparación con la base de datos SQLite, el objeto SharedPreferences elimina la necesidad de crear una base de datos, crear una tabla, escribir declaraciones SQL y muchas otras operaciones, lo cual es relativamente más conveniente y conciso. Sin embargo, SharedPreferences también tiene sus propias deficiencias. Por ejemplo, su función almacena cinco tipos de datos simples: booleano, int, flotante, largo y String. Por ejemplo, no puede realizar consultas condicionales. Entonces, no importa cuán simple sea la operación de almacenamiento de datos de SharedPreferences, solo puede ser un complemento del método de almacenamiento, pero no puede reemplazar completamente otros métodos de almacenamiento de datos, como la base de datos SQLite.

Tipo 2: datos de almacenamiento de archivos internos

Con respecto al almacenamiento de archivos, Activity proporciona el método openFileOutput() que se puede utilizar para generar datos en un archivo. El proceso de implementación específico es el mismo. como en J2SE Guardar datos en archivos en el entorno es lo mismo.

Los archivos se pueden utilizar para almacenar grandes cantidades de datos, como texto, imágenes, audio, etc.

Ubicación predeterminada: /data/data/lt; paquete gt;

El primer parámetro del método openFileOutput() se utiliza para especificar el nombre del archivo y no puede contener el separador de ruta "/". Si el archivo no existe, Android lo creará automáticamente.

El archivo creado se guarda en el directorio /data/data//files, como por ejemplo: /data/data/cn.itcast.action/files/itcast.txt, haciendo clic en el menú "Ventana" de Eclipse. "-"Mostrar vista"-"Otro", expanda la carpeta de Android en la ventana de diálogo, seleccione la vista del Explorador de archivos a continuación y luego expanda el directorio /data/data//files en la vista del Explorador de archivos para ver el archivo.

El segundo parámetro del método openFileOutput() se utiliza para especificar el modo de operación. Hay cuatro modos, a saber:

Context.MODE_PRIVATE = 0

. Context. MODE_APPEND = 32768

Context.MODE_WORLD_READABLE = 1

Context.MODE_WORLD_WRITEABLE = 2

Context.MODE_PRIVATE: Es el modo de operación predeterminado, lo que significa que el archivo es información privada. Solo la aplicación misma puede acceder a él. En este modo, el contenido escrito sobrescribirá el contenido del archivo original si desea agregar el contenido recién escrito al archivo original. Puede usar Context.MODE_APPEND

Context.MODE_APPEND: el modo verificará si el archivo existe y agregará contenido al archivo si existe. De lo contrario, se creará un nuevo archivo.

Context.MODE_WORLD_READABLE y Context.MODE_WORLD_WRITEABLE se utilizan para controlar si otras aplicaciones tienen permiso para leer y escribir el archivo.

MODE_WORLD_READABLE: Indica que el archivo actual puede ser leído por otras aplicaciones;

MODE_WORLD_WRITEABLE: Indica que el archivo actual puede ser escrito por otras aplicaciones.

Si desea que otras aplicaciones lean y escriban el archivo, puede pasar: openFileOutput("itcast.txt", Context.MODE_WORLD_READABLE Context.MODE_WORLD_WRITEABLE); android tiene su propio modelo de seguridad. la aplicación (. apk), el sistema le asignará un ID de usuario cuando se instale. Cuando la aplicación quiera acceder a otros recursos, como archivos, el ID de usuario debe coincidir. De forma predeterminada, todos los archivos, preferencias compartidas y bases de datos creados por una aplicación deben ser privados (ubicados en /data/data//files) e inaccesibles para otros programas.

A menos que se especifique Context.MODE_WORLD_READABLE o Context.MODE_WORLD_WRITEABLE al crear, solo de esta manera otros programas podrán acceder a él correctamente. Solo la aplicación que creó el archivo puede acceder a los archivos privados. Si desea que otras aplicaciones lean y escriban el archivo, puede especificar los permisos Context.MODE_WORLD_READABLE y Context.MODE_WORLD_WRITEABLE al crear el archivo.

Activity también proporciona los métodos getCacheDir() y getFilesDir(): el método getCacheDir() se utiliza para obtener el directorio /data/data//cache. El método getFilesDir() se utiliza para obtener el directorio /data/data/. Directorio /archivos.

Tipo 3: datos de almacenamiento de archivos externos

Guarde el archivo en una tarjeta SD:

Utilice el método openFileOutput() de Activity para guardar el archivo. teléfono móvil En términos de espacio, el espacio de almacenamiento de los teléfonos móviles generalmente no es muy grande. Está bien almacenar algunos archivos pequeños, pero no es factible almacenar archivos grandes, como videos. Para archivos grandes como vídeos, podemos almacenarlos en una tarjeta SD.

¿Qué hace la tarjeta SD? Puedes considerarlo como un disco duro móvil o una unidad flash USB.

Para usar la tarjeta SD en el simulador, primero debe crear una tarjeta SD (por supuesto, no una tarjeta SD real, solo un archivo de imagen).

La creación de una tarjeta SD se puede crear cuando Eclipse crea el simulador, o se puede crear usando comandos de DOS, de la siguiente manera: En la ventana de Dos, ingrese al directorio de herramientas de la ruta de instalación del SDK de Android, ingrese lo siguiente comando para crear una tarjeta SD con una capacidad de Para 2G SDCard, puede elegir cualquier sufijo de archivo. Se recomienda usar .img: mksdcard 2048M D:\AndroidTool\sdcard.img Para acceder a la tarjeta SDCard en el programa, debe solicitarla. permiso para acceder a la tarjeta SD.

Agregue el permiso para acceder a la tarjeta SDCard en AndroidManifest.xml de la siguiente manera:

Para almacenar archivos en la tarjeta SDCard, el programa primero debe determinar si el teléfono está equipado con una tarjeta SDCard y puede leer y escribir. .

Nota: Para acceder a SDCard, debes agregar el permiso para acceder a SDCard en AndroidManifest.xml.

El método Environment.getExternalStorageState() se utiliza para obtener el estado de la tarjeta SDCard. Si el teléfono móvil está equipado con una tarjeta SDCard y puede leer y escribir, el estado devuelto por el método es igual a Environment.MEDIA_MOUNTED.

El método Environment.getExternalStorageDirectory() se utiliza para obtener el directorio SDCard. Por supuesto, necesita obtener el directorio SDCard. También puede escribir así:

Tipo 4: Base de datos SQLite para almacenar datos

p>

SQLite es un motor de base de datos integrado liviano que admite el lenguaje SQL y tiene un buen rendimiento utilizando solo una pequeña cantidad de memoria. Además, es de código abierto y cualquiera puede usarlo. SQLite es utilizado por muchos proyectos de código abierto ((Mozilla, PHP, Python). SQLite consta de varios componentes: compilador SQL, kernel, backend y complementos. SQLite permite la depuración aprovechando máquinas virtuales y motores de bases de datos virtuales (VDBE). modificar y ampliar el kernel SQLite se vuelve más conveniente

Características:

Para dispositivos con recursos limitados,

Sin proceso de servidor,

Todos los datos se almacenan en el mismo archivo en todas las plataformas y se pueden copiar libremente.

SQLite básicamente cumple con el estándar SQL-92 y no se diferencia de otras bases de datos SQL importantes. La ventaja es la alta eficiencia. El entorno contiene SQLite completo.

La mayor diferencia entre SQLite y otras bases de datos es la compatibilidad con tipos de datos. Al crear una tabla, puede especificar una columna en la instrucción CREATE TABLE, pero puede ponerla. cualquier tipo de datos en cualquier columna Cuando se inserta un valor en la base de datos, SQLite verificará su tipo. Si el tipo no coincide con la columna asociada, SQLite intentará convertir el valor al tipo de la columna. convertido, el valor se almacenará como su propio tipo. Por ejemplo, puede colocar una cadena en la columna INTEGER. SQLite llama a esto "tipificación de manifiesto". SQLite no admite algunas funciones SQL estándar, especialmente restricciones de clave externa (CLAVE EXTRANJERA). restricciones), transacciones anidadas y RIGHT OUTER JOIN y FULL OUTER JOIN, así como algunas funciones ALTER TABLE.

Además de las características anteriores, SQLite es un sistema SQL completo con activadores completos, transacciones y más.

Android integra la base de datos SQLite. Android integra SQLite en tiempo de ejecución, por lo que todas las aplicaciones de Android pueden utilizar la base de datos SQLite.

Para los desarrolladores familiarizados con SQL, usar SQLite en el desarrollo de Android es bastante sencillo. Sin embargo, debido a que JDBC consume demasiados recursos del sistema, JDBC no es adecuado para dispositivos con memoria limitada, como los teléfonos móviles. Por lo tanto, Android proporciona algunas API nuevas para usar bases de datos SQLite. Durante el desarrollo de Android, los programadores deben aprender a usar estas API.

La base de datos se almacena en la carpeta del proyecto data/lt; gt;/databases/. Al utilizar la base de datos SQLite en el desarrollo de Android, las actividades pueden acceder a una base de datos a través del proveedor de contenido o servicio.

Crear una base de datos Android no proporciona automáticamente una base de datos. Para usar SQLite en una aplicación de Android, debe crear la base de datos usted mismo, luego crear tablas, índices y completar los datos.

Android proporciona SQLiteOpenHelper para ayudarle a crear una base de datos. Puede crear fácilmente una base de datos heredando la clase SQLiteOpenHelper. La clase SQLiteOpenHelper encapsula la lógica utilizada para crear y actualizar bases de datos según las necesidades de las aplicaciones en desarrollo.

Una subclase de SQLiteOpenHelper necesita implementar al menos tres métodos:

1 Constructor, que llama al constructor de la clase principal SQLiteOpenHelper. Este método toma cuatro parámetros: el contexto (por ejemplo, una actividad), el nombre de la base de datos, una fábrica de cursores opcional (normalmente nula) y un número entero que representa la versión del modelo de base de datos que está utilizando.

2 El método onCreate(), que requiere un objeto SQLiteDatabase como parámetro, llena la tabla e inicializa los datos para este objeto según sea necesario.

Método 3 onUpgrage(), que requiere tres parámetros, un objeto SQLiteDatabase, un número de versión anterior y un número de versión nueva, para que pueda comprender claramente cómo convertir una base de datos del modelo anterior al modelo nuevo. .

A continuación, discutiremos cómo crear tablas, insertar datos, eliminar tablas, etc. Puede obtener una instancia de SQLiteDatabase llamando al método getReadableDatabase() o getWriteableDatabase(). El método a llamar depende de si necesita cambiar el contenido de la base de datos:

El método update() tiene cuatro parámetros. , que son el nombre de la tabla, un objeto ContentValues ​​que representa el nombre y el valor de la columna, una condición WHERE opcional y una cadena opcional que completa la declaración WHERE. Estas cadenas reemplazan la marca "?"

update() actualiza el valor de la columna especificada según las condiciones, por lo que el método execSQL() se puede utilizar para lograr el mismo propósito. La condición WHERE y sus parámetros son similares a los utilizados en otras API de SQL.

El método eliminar() se usa de manera similar a actualizar(), usando el nombre de la tabla, la condición WHERE opcional y la cadena correspondiente para completar la condición WHERE.

Consultar la base de datos De manera similar a INSERTAR, ACTUALIZAR, ELIMINAR, existen dos métodos que utilizan SELECT para recuperar datos de una base de datos SQLite.

1. Utilice rawQuery() para llamar directamente a la instrucción SELECT; utilice el método query() para crear una consulta.

Consultas sin formato Como sugiere el nombre de la API, rawQuery() es la solución más sencilla. A través de este método puede llamar a la declaración SQL SELECT.

Por ejemplo: Cursor c=db.rawQuery( "SELECCIONE el nombre DE sqlite_master DONDE tipo='table' AND name='mytable'", null

En el ejemplo anterior; , Consultamos la tabla del sistema SQLite (sqlite_master) para verificar si la tabla existe. El valor de retorno es un objeto de cursor cuyos métodos pueden iterar sobre los resultados de la consulta. Si la consulta es dinámica, utilizar este método puede resultar muy complicado.

Por ejemplo, cuando la columna que necesita consultar no se puede determinar cuando se compila el programa, será mucho más conveniente utilizar el método query().

El método query() de Consultas regulares crea una consulta utilizando segmentos de instrucción SELECT. El contenido de la instrucción SELECT se utiliza como parámetros del método query(), tales como: nombre de la tabla que se consultará, nombre del campo que se obtendrá, condición WHERE, incluidos parámetros posicionales opcionales para reemplazar el valor del parámetro posicional en WHERE. condición, GRUPO POR condición, TENIENDO condición. Excepto el nombre de la tabla, otros parámetros pueden ser nulos. Por lo tanto, el segmento de código anterior se puede escribir como:

String[] columns={"ID", "inventory"}

Código Java

String; [ ] parms={"snicklefritz"}; Cursor result=db.query("widgets", columnas, "name=?", parms, null, null, null

Usar cursores

No importa cómo ejecute la consulta, se devolverá un Cursor, que es el cursor de la base de datos SQLite de Android.

Utilizando un cursor, puede:

Obtener el resultado. usando el método getCount() Cuántos registros hay en el conjunto

Recorre todos los registros a través de los métodos moveToFirst(), moveToNext() y isAfterLast()

Obtener el campo; nombres a través de getColumnNames();

Convertir a número de campo a través de getColumnIndex()

Obtener el valor del registro actual de un campo determinado a través de getString(), getInt() y otros. métodos;

Método Requery() Ejecute la consulta para obtener el cursor

Libere los recursos del cursor a través del método close()

Utilice la base de datos SQLite; herramienta de administración en Android para desarrollar en otras bases de datos y, en general, usa herramientas para verificar y manipular el contenido de la base de datos en lugar de simplemente usar la API de la base de datos.

Utilizando el emulador de Android, existen dos formas alternativas de gestionar la base de datos.

En primer lugar, el simulador está vinculado al programa de consola sqlite3, al que se puede llamar mediante el comando adb shell. Siempre que ingrese al shell del simulador, ejecute el comando sqlite3 en la ruta de la base de datos.

Los archivos de bases de datos generalmente se almacenan en: /data/data/your.app.package/databases/your-db-name. Si desea utilizar herramientas más amigables, puede copiar la base de datos a su máquina de desarrollo. , utilice el cliente compatible con SQLite para operarlo. En este caso, está operando con una copia de la base de datos y, si desea que sus cambios se reflejen en el dispositivo, debe hacer una copia de seguridad de la base de datos.

Para eliminar la base de datos del dispositivo, puede utilizar el comando adb pull (o realizar la operación correspondiente en el IDE).

Para almacenar una base de datos modificada en el dispositivo, utilice el comando adb push. Uno de los clientes SQLite más convenientes es la extensión Firefox SQLite Manager, que está disponible en todas las plataformas.

Si quieres desarrollar aplicaciones para Android, debes almacenar datos en Android, y usar una base de datos SQLite es una muy buena opción.

El quinto tipo: datos de almacenamiento en red

Los diversos tipos de almacenamiento presentados anteriormente almacenan datos en dispositivos locales. Además, existe otra forma de almacenar (obtener) datos. para lograr el almacenamiento y recuperación de datos a través de la red.

Podemos llamar a los datos devueltos por WebService o analizar el protocolo HTTP para lograr la interacción de datos de la red.