Android数据存储-DB(SQLite)
适用类型:重复、大量、结构化的数据
在APP中,DB被保存到了程序的private空间,这些空间默认是私有的,不能被其它的应用所访问,从而保证了DB中数据的安全性
在程序中,我们借助SQLiteOpenHelper对数据库进行读写操作,系统对于一些耗时的操作会在程序需要时才执行,而不是程序启动就开始执行,对于耗时的操作,我们应该AsyncTask or IntentService中进行,避免对程序主线程的影响
package net.oschina.git.zhaikun.androiddeveloped.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;/** * Created by zhaikun68 on 2017/8/2. * <p> * SQLite数据操作类 */public class SQLiteHelper ex ...
隐式意图 implicit intent
在我们的APP中用于与其他APP交互
implicit intent 在声明时并不需要指定跳转的activity的名称,而是声明一个要执行的动作action,action中可以携带数据,也可以不携带,根据需求而定
比如说,当我们需要在我们的APP中呼叫某一个电话
package net.oschina.git.zhaikun.androiddeveloped.activitys;import android.content.Intent;import android.content.pm.PackageManager;import android.content.pm.ResolveInfo;import android.net.Uri;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import andro ...
RGB颜色参考-ASCII对照表-HTTP状态码
传送门http://tool.oschina.net/commons
GridView组件常用属性
GridView组件常用属性:
1.Android:numColumns=”auto_fit” //GridView的列数设置为自动
2.Android:columnWidth=”100dp “ //每列的宽度,也就是Item的宽度
3.android:stretchMode=”columnWidth”//缩放与列宽大小同步
4.android:verticalSpacing=”20dp” //两行之间的边距
5.android:horizontalSpacing=”20dp” //两列之间的边距
6.android:cacheColorHint=”#00000000” //去除拖动时默认的黑色背景
7.android:listSelector=”#00000000” //去除选中时的黄色底色
8.android:scrollbars=”none” //隐藏GridView的滚动条
9.android:fadeScrollbars=”true” //设置为true就可 ...
在APP中打开设备中安装的应用市场
在我们自己的APP中,使用意图打开当前设备中安装的应用市场
public static void openAppInMarket(Context context) { if (context != null) { String pckName = context.getPackageName(); try { String uri = "market://details?id=" + pckName; Intent intent = new Intent("android.intent.action.VIEW"); intent.setData(Uri.parse(uri)); context.startActivity(intent); } catch (Exception e) { ...
Intent将在APP中获取到的联系人信息保存到通讯录
//声明Intent时指定Action为ContactsContract.Intents.Insert.ACTIONIntent intent = new Intent(ContactsContract.Intents.Insert.ACTION);intent.setType(ContactsContract.RawContacts.CONTENT_TYPE);//使用如putExtra()方法将联系人的信息以key-value的方式保存intent.putExtra(ContactsContract.Intents.Insert.NAME, name) .putExtra(ContactsContract.Intents.Insert.PHONE, phoneNumber);//检查是否有APP接收我们传入的IntentList<ResolveInfo> acceptActivityList = context.getPackageManager().queryIntentAc ...
设置ListView的高度(重算组件子项)
很多时候我们所见的ListView的子项数目并不是一定的,比如说在ListView1中嵌套一个ListView2,而此时每一个ListView2中显示的数据项数是不固定的,要完全显示每一个ListView2中的所有数据项,就需要对每一个ListView2的高度重新设置
private void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); i++) { // listAdapter.getCount()返回数据项的数目 View listIte ...
设置TextView显示文本倾斜
在组件中直接使用属性设置
android:textStyle="italic"
显示出来的文本即为斜体样式
Android系统架构
什么是Android?我将其简单理解成:一个移动操作系统。
下图来源于Android官方,详细的描述了Android的系统架构
由下到上依次分为Linux内核层、库和运行时、框架层和应用层。
Linux内核层Android底层的核心部分,包含了Android底层的核心服务内容,如安全机制、进程分配管理、硬件驱动等等。我们常在Android系统的移动设备中,在设置→关于手机中看到的内核版本即为Linux内核的版本。
库和运行时APP运行的虚拟环境,每个APP都会分配一个Dalvik虚拟机,确保多个APP之间不受干扰,保持相互独立,在运行时进行编译。在Android4.4以上的版本中,ART模式取代了Dalvik,其在安装时进行编译,运行时不再进行重复编译。
Art(Android Runtime)是和Dalvik类似的虚拟机,不同的是Dalvik虚拟机执行的是dex字节码,Art虚拟机执行的是本地机器码,这也是Google为了解决android性能问题所采取的方法,让Art虚拟机直接执行本地机器码,以提高性能。
框架层提供了Android应用所需的一系列类库,便于开发者快速开发应用。
...
Android的四大组件
Android的四大组件Activity(活动或者界面)
BroadCastReciever(广播接收者)
ContentProvider(内容提供者)
Service(服务)
四大组件是组成一个 Android APP 的基本元素,它们之间紧密联系却又相互独立。
Activity人机交互的第一界面,向用户展示各种信息,而这些信息来源于某些资源,或者是BroadCastReciever接收到的广播信息,或者是由ContentProvider提供的其它应用的数据信息,或者是Service后台处理的结果。各类组件之间通过Intent来通信、传递数据信息。