Android移动开发应用笔记
Android系统中有著名的4大组件:Activity、Service、BroadcastReceiver、ContentProvider,4大组件在使用时均要在清单文件AndroidManifest.xml中注册
Activity负责加载View组件并且与用户交互,所有Activity组件均继承Activity类。
View组件是所有UI组件、容器组件的基类。
Serivce主要完成类似下载文件、播放音乐等无需用户界面与用户交互的功能,继承Service类。
ContentProvider可以在其他应用中对这个应用暴露出来的数据进行增、删、改、查。
Intent在开启过程中可以进行各组件间数据传递。
颜色的表示格式
#RGB
#RRGGBB
#ARGB
#AARRGGBB
这4种数据格式,R代表红色值,G代表红色值,B代表蓝色值,A代表透明度。
尺寸的单位
px(像素)
in(英寸)
mm(毫米)
pt(磅)
dip(与密度无关的像素)
sp(与刻度无关像素)
MediaPlayer常用方法
android.permission.ACCESS_COARSE LOCATION
//允许一个程序访问Cell ID或WiFi来获取粗略的位置
android.permission.ACCESS_FINE_LOCATION
//允许一个程序访问精确位置(如GPS)
android.permission.ACCESS_NETWORK_STATE
//允许程序访问有关的网络信息
android.permission.ACCES_SURFACE_FLINGER
//允许程序使用SurfaceFlinger底层特性
android.permission_ACCESS WIFI_STATE
//允许程序访问WiFi网络状态信息
android.permission.BATTERY_STATS
//允许程序更新手机电池统计信息
android.permission. BLUETOOTH
//允许程序连接到已配对的蓝牙设备
android.permission.BLUETOOTH_ADMIN
//允许程序发现和配对蓝牙设备
android.permission.CAMERA
//请求访问使用照相设备
android.permission.CHANGE_NETWORK_STATE
//允许程序改变网络连接状态
android.permission.CHANGE_WIFI_STATE
//允许程序改变WiFi连接状态
android.permission.DELETE_CACHE_FILES
//允许程序删除缓存文件
android. permission.DELETE_PACKAGES
//允许一个程序删除包
android.permission.INSTALL_PACKAGES
//允许一个程序安装packages
android.permission.INTERNET
//允许程序打开网络
android.permission.READ_CALENDAR
//允许程序读取用户日历数据
android.permission.READ_LOGS
//允许程序读取底层系统日志文件
android.permission.READ_PHONE_STATE
//允许读取电话的状态
android.permission.READ_SMS
//允许程序读取短信息
android.permission.SEND_SMS
//允许程序发送SMS短信
android.permission.RECEIVE_SMS
//允许程序接收短信息
android prmision.WRITE_SMS
//允许程序写短信
android.permission.RECORD_AUDIO
//允许程序录制音频
android.permission.SET_TIME
//允许应用设置系统时间
android.permission.WRITE_EXTERNAL_STORAGE
//允许应用写用户的外部存储器
android.permission.READ_CONTACTS
//允许程序读取用户联系人数据
android.permission.WRITE_CONTACTS
//允许程序写入用户联系人数据
android.permission.REBOOT
//请求能够重新启动设备
资源管理
字符串资源:文件为res/values/strings.xml
颜色资源: 文件为res/values/colors.xml
尺寸资源: 文件为res/values/dimens.xml
样式资源: 文件为res/values/styles.xml
生命周期的方法
(1)onCreate()
在Activity 第一次启动时调用,可以在该方法中初始化数据、设置静态变量,创建客户视图、绑定控件数据等。该方法入参为一个捆绑包含了之前状态的对象。随后总是调用onStart方法。
(2)onRestart()
Activity 已经停止之后会被调用,仅仅发生在之前启动过的Activity 上。随后总是调用onStart方法。
(3)onStart()
当Activity对用户可见时调用,随后有可能执行两个方法:如果当前Activity展现到前端,用户获取输入焦点,则调用onResume方法;如果对其进行隐藏,则调用onStop方法。
(4)onResume()
在Activity启动并与用户进行交互时调用,此时Activity处于栈的顶部。随后总是调用onPause方法。
(5)onPause()
在用户打算启动其他Activity时调用,该方法典型的工作为:提交未保存的数据,停止动画,以及停止其他一切消耗 CPU的操作。不管应用响应速度是否快,这些都是必须要做的工作,因为下一个Activity将不能恢复,直到这个方法返回为止。
(6)onStop()
当Activity对用户不可见的情况下调用,可能是发生在Activity正在销毁或者其他Activity 恢复将其覆盖的情况。如果Activity再次回到前台与用户交互,则调用onRestart方法;如果关闭Activity,则调用onDestroy方法。
(7)onDestory()
在 Activity销毁前调用。
启动方式
1.显式启动
Intent intent = new Intent(MainActivity.this, SubActivity.class); //定义个Intent
startActivity(intent); /启动Activity
2.隐式启动
Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse(“content://com.android.contacts/contacts”));
startActivity(intent); //启动Activity
常见Action常量及说明
ACTION_VIEW
//最常用的动作,对以Ui方式传递过来的数据,根据协议部分以最佳方式自动。例如,go:laitude,longitude将打开地图应用程序并显示指定的纬度和经度。
ACTION_MAIN
//应用程序入口。
ACTION_CALL
//打开电话应用程序并将Uri中的数据部分作为电话号码
ACTION_DIAL
//打开电话应用程序并显示Uri中的数据部分作为电话号码
ACTION_SEND
//启动一个可以发送数据的Activity
ACTION_EDIT
//打开一个Activity,对所捉供的数据进行编辑操作
ACTION_PICK
//从列表中选择某项,并返回所选的数据
ACTION_CHOOSE
//显示一个Activity选择器
说明:以上常量对应的值,通常是android.intet. action.XXX的形式。例如,示例中的android.intent.action.SEND,其实就是ACTION_SEND。
通过一个或多个属性来指定响应的scheme, host, port, path 和MIME type等值。接受的是一个Uri对象,形式如下:
content://com.android.contacts/contacts/1
其中,content 是scheme部分,com.android.contacts 是host部分,/contacts/1 是path部分。例子中主要定义了MIME type属性,用于声明该组件所能匹配的Intent的Type属性。
常见Category常量及说明
CATEGORY_DEFAULT
//Android系统中默认的执行方式,按照普通Activity的执行方式执行。
CATEGORY HOME
//设置该组件随系统启动而运行。
CATEGORY_PREFERENCE
//设置该组件为参数面板。
CATEGORY_LAUNCHER
//设置该组件为在当前应用程序启动器中优先级最高的Activity, 通常和入口ACTION MAIN配合使用。
CATEGORY BROWSABLE
//设置该组件可以使用浏览器启动。
CATEGORY_TAB
//设置该组件为TabActivity的Tab页。
CATEGORY_INFO
//用于提供包信息。
TextView常用属性
android:autoLink
//设置当文本为URL链接/email/电话号码/map时,文本显示是否为可单击的链接。可选值(none/web/email/phone/map/all)
android:autoText
//如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入时起作用
android:gravity
//设置文本位置,若设置成“center", 文本将居中显示
android:linksClickable
//设置链接是否单击链接,即使设置了autoLink
android:maxLength
//限制显示的文本长度,超出部分不显示
android:lines
//设置文本的行数,设置两行就显示两行,即使第二行没有数据
android:maxLines
//设置文本的最大显示行数,与width或layout. widh结合使用,超出部分自动换行,超出行数将不显示
android:minLines
//设置文本的最小行数,与lines类似
android:lineSpacingExtra
//设置行间距
android:lineSpacingMutiplier
//设置行间距的倍数,如“1.2”
andreid:text
//设置显示文本
android:textColor
//设置文本颜色
android:lextColorLink
//文字链接的颜色
android:textSize
//设置文字大小,推荐度量单位“sp",如“1Ssp"
android:textStyle
//设置字形[bold(粗体) 0, talic(斜体) 1, bolditalic(又粗又斜)2],可以设置一个或多个,用“|”隔开
android:height
//设置文本区域的高度,支持度量单位: px(像 素)dplspin/mm(毫米)
android:maxHeight
//设置文本区域的最大高度
android:minHeight
//设置文本区域的最小高度
android:width
//设置文本区域的宽度,支持度量单位: px(像 素)/dpsp/in/mm(毫米)
android:max Width
//设置文本区域的最大宽度
android:minWidth
//设置文本区域的最小宽度
EditText常用属性
android:editable
//设置是否可编辑。仍然可以获取光标,但是无法输入
android:hint
//Text为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色
android:imeOptions
//设置软键盘的Enter 键。有如下值可设置: normal, actionUnspecified, actionNone, actionGo,actionSearch,actionSend ,actionNext, actionDone ,flagNoExtractUi, flagNoAccessoryAction ,flagNoEnterAction.可用“|” 设置多个。这里仅设置显示图标之用
android:imeActionld
//设置IME动作ID,在onEditorAction中捕获判断进行逻辑操作
android:imeActionLabel
//设置IME动作标签。但是不能保证定会使用, 可能在输入法扩展时有用
android:numeric
//如果被设置。读TextView有一个数字输入法。有如下值设置,integer正整数、signed带符号整数、decimal带小数点浮点数
android:password
//以小点“.”显示文本
android:phoneNumber
//设置为电话号码的输入方式
android:singleLine
//设置单行显示。如果和layout_width一起使用, 当文本不能全都显示时,后面用“…”来表示。如:
android:text= "test singleLine "
android:singleLine=“true”
android:layout_width=“20dp”
将只显示“t…"如果不设置singlel ine或者设置为false,文本将自动换行
Toast 常量
int LENGTH_LONG
//持续业示视图或文本提示较长时间,该时间长度可定制
int LENGTH_SHORT
//持续是示视图或文本提示较短时间,该时间长度可定制。该值为默认值
控件与控件之间的关系和位置的属性
android:layout_above
//将该控件放在给定ID控件的上面
android:layout_below
//将该控件放在给定ID控件的下面
android:layout_toLftOf
//将该控件放在给定ID控件的左边
android:layout_toRightOf
//将该控件放在给定ID控件的右边
控件与控件之间的对齐属性
android:layout_alignBaseline
//将该控件的baseline与给定ID控件的baseline对齐
android:layout_alignTop
//将该控件的顶部与给定ID控件的顶部对齐
android:layout_alignBottom
//将该控件的底部与给定ID控件的底部对齐
android:layout_alignLeft
//将该控件的左边边缘与给定ID控件的左边边缘对齐
android:layout_alignRight
//将该控件的右边边缘与给定ID控件的右边边缘对齐
控件与父控件之间对齐的属性
android:layout_alignParentTop
//将该控件的顶部与父控件的顶部对齐
android:layout_alignParentBottom
//将该控件的底部与父控件的底部对齐
android:layout_alignParentLeft
//将该控件的左边边缘与父控件的左边边缘对开
android:layout_alignParentRight
//将该控件的右边边缘与父控件的右边边缘对开
控件方向属性
android:layout_centerHorizontal
//将该控件位于水平方向的中央
android:layout_centerVertical
//将该控件位于垂直方向的中央
android:layout_centerInParent
//将该控件位于父控件水平和垂直方向的中央
RadioButton 常用方法
toggle()
//将单选按钮更改为与当前选中状态相反的状态,如果这个单选按钮已经选中,这个方法将不切换单选按钮
RadioGroup常用方法
addView
//使用指定的布局参数添加一个子视图
Check
//如果传递-1作为指定的选择标识符来清除单选按钮组的勾选状态,相当于调用clearCheck0操作
clearCheck
//清除当前的选择状态,当选择状态被清除,则单选按钮组里面的所有单选按钮将取消勾选状态,getCheckedRadioButtonld0将返回null
getCheckedRadioButtonId
//返回该单选按钮组中所选择的单选按钮的标识ID,如果没有勾选则返回-1
setOnCheckedChangeListener
//注册一个当该单选按钮组中的单选按钮勾选状态发生改变时所要调用的回调函数
setOnHicrarchyChangeListener
//注册 “ 个当子内容添加到该视图或者从该视图中移除时所要调用的回调函数
CheckBox 常用方法
isChecked
//判断组件状态是否勾选
onRestoreInstanceState
//设置视图恢复以前的状态
performClick
//执行Click动作,该动作会触发事件监听器
setButtonDrawable
//根据Drawable对象设置组件的背景
setChecked
//设置组件的状态
setOnCheckedChangeListener
//设置事件监听器
Tooggle
//改变按钮当前的状态
onCreateDrawableState
//获取文本框为空时文本框里面的内容
onCreateDrawableState
//为当前视图生成新的Drawable状态
ImageButton 常用属性
Android:adjustViewBounds
//设置是否保持宽高比,true 或false
Android:cropToPadding
//是否截取指定区域用空白代替。单独设置无效果,需要与scrollY一起使用。true 或者false
Android:maxHeight
//设置图片按钮的最大高度
Android:maxWidth
//设置图片的最大宽度
Android:scaleType
//设置图片的填充方式
Android:class="lazy" data-src
//设置图片按钮的Drawable
Android:tint
//设置图片为渲染颜色
ImageView 常用属性
android:adjustViewBounds
//设置该属性为true,可以在ImageView 调整边界时保持图片的纵横比例(需要与maxWidth、maxHeight起使用, 否则单独使用没有效果)
android:baseline
//视图内基线的偏移量
android:baselineAlignBottom
//如果为true,图像视图将基线与父控件底部边缘对齐
android:maxHeight
//为视图提供最大高度的可选参数(注:单独使用无效,需要与setAdjustViewBounds -一起使用。如果想设置图片固定大小,又想保持图片宽高比,需要如下设置:
(1).设置setAdjustViewBounds为true;
(2).设置maxWidth、maxHeight;
(3).设置layout width 和layout height 为wrap content。 )
android:max Width
//为视图提供最大宽度的可选参数
android:class="lazy" data-src
//设置可绘制对象作为ImageView显示的内容
关键状态属性
android:state_selcted
//选中
android:state_ focused
//获得焦点
android:state_pressed
//单击
android:state_ enabled
//设置是否响应事件,指所有事件
回调方法
onAttach(Activity)
//当Fragment与Activity 发生关联时调用
onCreateView(L ayoutInflater, ViewGroup,Bundle)
//创建该Fragment的视图
onActivityCreated(Bunde)
//当Activity的onCreate方法返回时调用
onDestoryView()
//与onCreateView相对应,当该Fragment的视图被移除时调用
onDetach()
//与onAttach相对应,当Fragment与Activity关联被取消时调用
MediaPlayer 常用的控制方法
Crcate()
//创建Mediaplayer实例,如果MediaPlayer实例是由create方法创建的。那么第次启动播放前不需要再调用prepare),因为creat0方法中已经调用过了
Prepare()
//同步方式设置播放器进入prepare状态
prepareAsync()
//异步方式设置播放器进入prepare状态
setDataSource()
//设置播放文件
start()
//启动文件播放
pause()
//暂停播放
Seckto()
//定位方法,可以让播放器从指定的位置开始播放,需要注意的是该方法是一个异步方法, 也就是说该方法返回时并不意味着定位完成,尤其是播放的网络文件,真正定位完成时会触发OsSecComple oSecComplee.如果需要可以调用sosockColere isner(rsSeekCopleeListener)设置监听器处理
Release()
//释放播放器占用的资源,一旦确定 不再使用播放器时,应当尽早调用它释放资源
PendingIntent 常用方法
getActivity(Context context, int requestCode, Intent intent, int flags)
//启动个Activity
getBroadcastContext context, int requestCode, Intent intent, int flags)
//启动一个Service
getBroadcastContext context, int requestCode, Intent intent, int flags)
//取得一个广播
PendingIntent 的常规参数
FLAG_CANCEL_CURRENT
//如果构建的PendingIntent已经存在,则取消前一个,重新构建-一个
FLAG_NO_CREATE
//如果前一个PendingIntent已经不存在了,将不再构建它
FLAG_ONE_SHOT
//表明这里构建的PendingIntent只能使用一次
FLAG_UPDATE_CURRENT
//如果构建的PendingIntent已经存在,则替换它,经常使用
Activity 类中文件操作的常用函数
public FileInputStream
openFilelnput(String name)
//设置要打开的文件输入流
public FileOutputStream
openFileOutput (String name, int mode)
//设置要打开的文件输出流,指定操作的模式。操作的模式可以为MODE_APPEND,MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE
SQLite 支持的5种数据类型
NULL
//空值
INTEGER
//有符号整数
REAL
//浮点数
TEXT
//文本字符串
BLOB
//数据块
sqlite3 中的部分常见命令
sqlite>.help
//输出帮助信息
sqlite>.dataicase
//查看数据库文件信息命令
sqlite>.quit或sqlite>.exit
//退出终瑞命令
sqlite> .show
//列出当前显示格式的配置
sqlite>.schema
//显示数据库结构
sqlite>.dump
//将数据库以SQL文本形式导出
sqlite>.mode
//设置显示模式,有多种显示模式,默认的是list显示模式
sqlite>.headers on/off
//显示/关闭标题栏
sqlite>.separator分隔符
//设置分隔符
SQLiteOpenHelper类中的常用方法
public SQLiteOpcnHelper(Context context, String name,SQLiteDatabase CursorFactory factory, int verson)
//构造方法,指明要操作的数据库的名称及版本号
public synchronized void close()
//关闭数据库
public synchronized sQLiteDatabase getReadabeDatabasel()
//以只读的方式创建或者打开数据库
public synchronized SQLiteDatabase gtriteableDatbase()
//以修改的方式创建或者打开数据库
public astract void onCreat(SQLiteDatabasa db)
//创建数据表格
public astract void onUpgrade(SQLiteDatabase db,int oldVersion, int newVersion)
//更新数据库
public void onOpen( sQLiteDatabase db)
//打开数据库
Cursor类常用的方法
moveToFirst
//将指针移动到第一条数据上
moveToNext
//将指针移动到下一条数据上
moveToPrevious
//将指针移动到上一条数据上
getCount
//获取集合中的条目个数
getColumnIndexOrThrow
//返回指定属性名称的列号,如果不存在,则产生异常
getColumnName
//返回指定列号的属性名称
getColumnIndex
//根据属性名称返回列号
moveToPosition
//将指针移动到指定位置的数据上
getPosition
//返回当前的指针位置
ContentProvider 的常用操作方法
public abstract int delete(Uri uri, String selection, String selectionArgs)
//根据指定的Uri删除记录,并返回删除记录的条目数量
public abstract String getType(Uri uri)
//根据指定的Uri,返回操作的MIME类型
public abstract Uri insert(Uri uri, ContentValues values)
//根据指定的Uri增加记录,并且返回增加后的Uri,在此Uri中会附带有新数据的id
public abstract Cursor query(Uri uri, StringD projection, String selection,String[] selectionArgs, String sortOrder)
//根据指定的Uri 执行查询操作,所有的查询结果通过Cursor对象返回
public abstract int update(Uri uri, ContentValues values, String selection,String[] selectionArgs)
//根据指定的Uri进行记录的更新操作,并且返回更新记录的条目数量
ContentResolver 类常用方法
public final int delete(Uri uri, String selection, String selectionArgs)
//调用指定ContentProvider对象中的delete()方法
publie final String getType(Uri uri)
//调用指定ContentProvider对象中的getType()方法
public final Uri inser(Uri uri, ContentValucs values)
//调用指定ContentProvider对象中的insert()方法
public final Cursor queryUri uri, String[] prijection, String seletion,StringI] selectionAres, String sortOrder)
//调用指定ContentProvider对象中的query()方法
pubi final int update(Ur uri, CnenValues values, String slection,String[] selectionArgs)
//调用指定ContentProvider对象中的updateO方法
ContentResolver 实例化方法
pubic ContentResolver getContentResolver)
//取得CnentResover类的对象
Uri 类常用操作方法
public static String encode(String s)
//对字符串编码
public static String decode(String s)
//对编码后的字符串解码
public static Uri fromFieFile file)
//从指定的文件中读取Uri
public static Uri withAppendedPath(Uri baseUri,String pathSegment)
//在已有地址之后添加数据
public static Uri parse(String uriString)
//将给出的字符事地址变为Uri对象
UriMatcher 类常用方法
public UriMatcher(int code)
//实例化UriMatcher类的对象
pubic void addURI(String authority String path, int code)
//增加一个指定的URI地址
public int match(Uni uri)
//与传入的Uri比较,如果匹配成功。则返回相应的code:如果匹配失败,则返回-1
作者:Endless-love
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341