Android学习笔记:Android基础知识点(不断更新中)

一、Android系统的四大组件分别是:活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)、内容提供器(Content Provider)。android

二、定义一个应用程序名的字符串,有如下两种方式来引用它:web

<resources>
	<string name="app_name">HelloWorld</string>
</resources>
  • 在代码中经过R.string.app_name能够得到该字符串的引用
  • 在XML中经过@string/app_name能够得到该字符串的引用

三、tragetSdkVersion(build.gradle中)
若是设置了此属性,那么程序在执行时,若是目标设备的API版本正好等于此数值,它会告诉Android平台:此程序在此版本已经通过充分测试,没有问题。没必要为此程序开启兼容性检查判断的工做了。也就是说,若是targetSdkVersion与目标设备的API版本相同时,运行效率可能会高一些。app

四、日志工具Logide

方法 对应级别 级别由低到高
Log.v() verbose
Log.d() debug
Log.i() info
Log.w() warn
Log.e() error

五、全部的活动都要在AndroidManifest.xml中进行注册才能生效。svg

六、配置主活动工具

<activity>标签内部加入<intent-filer>标签,并在标签里添加以下两句声明便可。
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

七、Toast
Toast是Android系统提供的一种很是好的提醒方式,在程序中可使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,而且不会占用任何屏幕空间。布局

八、Intent
Intent是Android程序中各类组件之间进行交互的一种重要方式,它不只能够指明当前组件想要执行的动做,还能够在不一样组件之间传递数据。
使用隐式子Intent须要注意:
(1)只有< action >和< category >中的内容同时可以匹配上Intent指定的action和category时,这个活动才能响应该Intent。
(2)每一个Intent中只能指定一个action,但却能指定多个category。
(3)只有< data >标签中指定的内容和Intent中携带的Data彻底一致时,当前活动才可以响应该Intent。测试

九、SingleInstance
(1)以singleInstance模式启动的Activity具备全局惟一性,即整个系统中只存在一个这样的实例。
(2)以singleInstance模式启动的Activity在整个系统中是单例,若是在启动这样的Activity时,已经存在了一个实例,那么会把它所在的任务调度到前台,重用这个实例。
(3)以singleInstance模式启动的Activity具备独占性,即它会独自占用一个任务,被它开启的任何Activity都会运行在其余任务中。
(4)被singleInstance模式的Activity开启的其余Activity,可以在新的任务中启动,但不必定开启新的任务,也可能在已有的一个任务中开启。字体

十、android:layout_gravity和android:gravity的区别
(1)android:gravity是对view控件自己来讲的,是用来设置view自己的内容应该显示在view的什么位置,默认值是左侧,也能够用来设置布局中的控件位置。
(2)android:layout_gravity是相对于包含该元素的父元素来讲的,设置该元素在父元素的什么位置。
例如TextView中,android:gravity表示TextView文本在TextView的什么位置,默认值是左侧;android:layout_gravity表示TextView在界面上的位置。gradle

十一、dp与sp的区别
(1)dp:一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp=1px。
(2)sp:主要用于字体显示,与刻度无关的一种像素,与dp相似。
→长度宽度的数值要使用dp做为单位放入dimens.xml文件中
→字体大小的数值要使用sp做为单位放入dimens.xml文件中
使用sp做为字体大小的单位,会随着系统的字体大小而改变,而dp做为单位则不会。

十二、Android工程图片资源命名禁忌
(1)大写字母
(2)”default.png“
(3)如下划线("_")开头
(4)以数字加下划线("[0-9] _")开头

1三、只有线性布局(LinearLayout)支持使用layout_weight属性,来实现按比例指定控件大小的功能。
系统会先把LinearLayout下全部控件指定的layout_weight值相加,获得一个总值。而后每一个控件所占大小的比例就是用该控件的layout_weight值除以刚才算出的总值。

1四、全部的布局都是直接或间接继承自ViewGroup的。

1五、LayoutInflater与findViewById的区别
在实际开发中,LayoutInflater这个类仍是很是有用的,它的做用相似于findViewById()。不一样点是LayoutInflater是用来找res/layout/下的xml布局文件,而且实例化;而findViewById()是找xml布局文件下的具体widget控件(如 Button、TextView等)。

1六、JSON 一个最基本的JSON对象是有两个花括号:"{“和”}"。