前言
笔者是一名iOS开发者,最近在学习Android开发。作为移动平台的两大阵营,iOS和Android开发既有想通之处,也有各自不同的特性。本系列文章,主要是从iOS开发者的角度,类比地去学习Android开发,记录下自己的一些心得体会。如果你也对Android开发感兴趣,并想入门学习。建议可以去看郭霖的《第一行代码》。笔者也是通过这本书来入门学习Android开发的,因此,本文的大部分知识,你都可以在这本书中看到。
这里需要说明的是,笔者手中的《第一行代码》是第二版。目前此书共有三版,第一版是在2014年出版,时间相对较早,书中使用的开发工具还是Eclipse,内容很多已过时。第二版是2016年出版,在第一版的基础上基于Android7.0进行全面更新,开发工具也跟新为Android Studio,不过目前来看,也有部分过时的API。第三版是2020年出版,更新了部分内容的同时,全书改用Google推荐的Kotlin作为开发语言。作为初学者,笔者不建议直接从Kotlin学起,毕竟目前大量的项目还是基于Java开发。就好像虽然苹果主推Swift,但目前大量的项目还是基于Objective-C开发。我们可以入门后,进一步学习Kotlin。
一、Android的日志工具Log
我们在iOS开发中,调试打印日志通常用到NSLog
。这里要介绍Android的Log
,真是比NSLog
好用多了。首先,Log
类提供了5种方法,对应不同级别的日志输入。
1、 Log.v()
用于打印最为琐碎的、意义最小的日志信息。对应级别verbose,是级别最低的一种。
2、Log.d()
用于打印调试信息,这些信息应该对调试程序和分析问题有帮助。对应的级别debug,比verbose高一级。
3、Log.i()
用于打印交重要的信息,这些数据应该是我们非常想看、可以帮助我们分析用户行为的。对应的级别info,比debug高一级。
4、Log.w()
用于打印警告信息,提示应用程序这个地方可能有潜在风险。对应的级别是warn,比info高一级。
5、Log.e()
用于打印错误信息,如代码进入catch语句中。当有错误信息出现,表示出现严重问题,需要及时修复。对应级别error,比warn高一级。
二、Log的简单用法
Log.d()方法,需要传入两个参数:第一个是tag,用于过滤消息,一般传类名;第二个传msg,要打印的内容。
我们可以试着打开HelloWorld项目,在MainActivity
中,找到onCreate
方法,输入logd
回车
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("MainActivity", "onCreate:打印内容 ");
}
我们也可以提前在类中定义好tag,只需输入logt
回车,就会自动生成tag
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "onCreate: 打印内容");
}
}
在Android Studio底部的Logcat,我们可以看到打印内容
同时logcat支持不同级别的日志切换显示,我们能看到所选择级别及其以上的日志内容。
另外,我们还可以设置过滤器。
-
Show only selected application
:表示当前选中程序的日志; -
Firebase
:谷歌提供的分析工具; -
No Filters
:不适用过滤器; -
Edit Filter Configuration
:编辑配置自己的过滤器;
当然,也可以直接在搜索框中,通过关键字搜索自己关注的日志内容。
结语
以上就是Android的日志工具Log的简单使用。接下来,我们将正式开始学习开发内容,首先是UIViewController
,在安卓中,它叫做Activity
活动。