1,Android系统架构
2,开发的四大组件
3,丰富的系统控件
Android 系统为开发者提供了丰富的系统控件,使得我们可以很轻松地编写出漂亮的界面。当然如果你品位比较高,不满足于系统自带的控件效果,也完全可以定制属于自己的控件。
4,SQLite数据库
Android 系统还自带了这种轻量级、运算速度极快的嵌人式关系型数据库。它不仅支持标准的 SOL语法,还可以通过Android 封装好的 API进行操作,让存储和读取数据变得非常方便。
5,强大的多媒体
Android 系统还提供了丰富的多媒体服务,如音乐、视频、录音、拍照、闹铃,等等,这一切你都可以在程序中通过代码进行控制。
6,地理位置定位
现在的 Android手机都内置有 GPS,走到哪儿都可以定位到自己的位置
7,hello world
已经安装好Android和夜神模拟器之后,就可以写我们的第一行代码了。
8,项目结构
这样的项目结构,是被转换了的,点击如下位置,可以切换成真实的目录结构。
也就是说,对于开发者而言,主要是app目录。
9,项目是如何运行起来的
首先打开文件AndroidManifest.xml文件。找到对应的如下代码:
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这个地方表示MainActivity这个活动的注册,没有在AndroidManifest中注册的活动是不能使用的。其中intent-filter内的两行代码很重要,表示MainActivity是这个项目的主活动,在手机上点击应用图标,首先启动的就是这个活动。
活动是应用程序的门面,也就是我们看到的页面应该是定义在MainActivity这个活动中。现在打开查看:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Activity 是 Android 系统提供的一个活动基类,我们项目中所有的活动都必须继承它或者它的子类才能拥有活动的特性(AppCompatActivity 是 Activity 的子类)。然后可以看到MainActivity中有一个onCreate()方法这个方法是一个活动被创建时必定要执行的方法。
其实 Android 程序的设计讲究逻辑和视图分离,因此是不推荐在活动中直接编写界面的,更加通用的一种做法是,在布局文件中编写界面,然后在活动中引人进来。可以看到在onCreate()方法的第二行调用了 setContentView()方法,就是这个方法给当前的活动引入了一个hello_world layout布局,那 Hello World!一定就是在这里定义的了!
注意这一行代码,他定义了界面的内容,可以看到内容的路径:res文件夹下的layout文件夹下activity_main文件中定义:
setContentView(R.layout.activity_main);
可以找到如下代码,就是这里写了hello world:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
10,详解项目中的资源
11,资源的引用
举个例子,res中的values下的string文件:
<resources>
<string name="app_name">My Application</string>
</resources>
都是用xml来存储信息的,这里就是定义了一个名为app_name值为My Application的变量。
而想要访问该变量,有以下两个方式:
在代码中通过R.string.app_name
在xml中使用@string/app_name
例如上文setContentView(R.layout.activity_main);就是引用的res文件夹下的layout文件夹下的activity_main.xml文件。
12,Android的日志工具log
在helloworld中尝试一下:
可以看到有两个参数,第一个是备注信息,用来筛选是啥log,第二个参数才是具体的日志信息。快捷键是logd然后回车。