#Android Day1
学习android第一天
学习教程:《第一行代码》 郭霖著
了解android
四大组件
活动 服务 广播接收器 内容提供器丰富的系统控件
SQLite数据库
轻量级、运算速度极快的嵌入式关系型数据库强大的多媒体
超级酷,期待地理位置定位
GPS LBS
分析android程序
.gradle和.idea
这两个目录下放置AS自动生成的文件app
放置项目中的代码、资源等内容build
包含编译时自动生成的文件gradle
这个目录下包含了graddle wrapper的配置文件.gitignore
这个文件时用来将指定的目录或文件排除在版本控制之外的build.gradle
这是项目全局的gradle构建脚本gradle.properties
这个文件是全局的gradle配置文件,这里配置的属性将影响项目中所有gradle编译脚本gradlew和gradlew.bat
这两个文件是用来在命令行界面执行gradle命令的HelloWorld.iml
iml文件是所有IntelliJ IDEA 项目都自动生成的一个文件,用于标志这是一个Intelli IDEA项目local.properties
这个文件用于指定本机中的Android SDK路径settings.gradle
这个文件用于指定项目中所有引入的模块
app目录详解
build
这个目录和外层的build目录相似,包含编译时自动生成的文件libs
jar包放在这个目录下androidTest
用于编写Android Test测试用例的,可以对项目进行一些自动化测试Java
放置所以Java代码的地方res
在项目中使用到的所有图片、布局、字符串等资源都存放在这个目录下
这个目录有很多子目录,图片—drawable、布局—layout、字符串—valuesAndroidManifest.xml
这是整个Android项目的配置文件,在程序中定义的所有四大组件都需要在这个文件中注册
还可以在这个文件中给应用程序添加权限声明test
用于编写Unit Test测试用例,是对项目进行自动化测试的另一种方式.gitignore
这个文件用于将app模块内的指定的目录或文件排除在版本控制之外,作用和外层的.gitignore文件类似app.iml
IntelliJ IDEA项目自动生成的文件proguard-rules.pro
这个文件用于制定项目代码的混淆规则
注册活动
Android-Manifest.xml文件中有如下代码
<activity android:name=".HelloWorldActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>
所有活动都必须在AndroidManifest.xml中注册
其中intent-filter中的两行代码很重要,表示了HelloWorldActivity是这个项目的主活动
打开HelloWorldActivity代码,如下:
public class HelloWorldActivity extends AppCompatActivity{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.hello_world_layout);}}
注意:
- HelloWorldActivity是继承自AppCompatActivity
- Activity是Android系统提供的一个基类,项目中所有活动都必须继承他它或者它的子类才能拥有活动的特性
- AppCompatActivity是Activity的子类
- onCreate()方法是一个活动被创建时必定要执行的方法
Android程序设计讲究 逻辑 和 视图 分离
通常是 在布局文件中编写界面,然后在活动中引入进来
布局文件定义在res/layout目录下
项目中的资源
打开res目录可以看到很多文件夹
drawable—图片
mipmap—应用图标
values—字符串、样式、颜色等配置
layout—布局文件
为了兼容多种设备,我们可能需要建立多个文件夹
那么如何使用这些资源呢
打开res/values/strings.xml文件
<resources><string name="app_name">HelloWorld</string></resources>
这里定义了一个应用程序名的字符串,可以通过以下两种方式引用
- 在代码中通过R.string.app_name可以获得该字符串的引用
- 在XML中通过@string/app_name可以获得该字符串的引用
语法如上,可根据资源类型替换string/drawable/mipmap/layout
build.gradle文件
Android的日志工具 Log
可以使用Android中的日志工具类Log中的五个方法打印日志
- Log.v() 打印琐碎、意义小的信息
- Log.d() 打印一些调试信息
- Log.i() 打印一些重要数据
- Log.w() 打印一些警告信息
- Log.e() 打印程序中的错误信息
对应级别:error>warn>info>debug>verbose
快捷输入:
要打印一条debug级别的日志,只需输入logd,然后按下Tab,即可自动补全一条完整的打印语句,其他的以此类推
Log所有的打印方法都需要输入两个参数,第一个参数是tag,一般传入当前的类名,主要用于对打印信息的过滤;第二个参数是msg,即想要打印的具体内容。
每次都写一遍tag显然很麻烦,我们可以在onCreate()方法的外面输入logt,然后按下Tab,就会以当前的类名作为值自动生成一个TAG常量
public class HelloWorldActivity extends AppCompatActivity{private static final String TAG = "HelloWorldActivity";……}
总结
第一天尝试记录博客,虽然有些耗费时间,但是这种方式确实可以加深我的印象和理解,同时我也更好的发现以前遗漏疏忽的地方,更加细致。