10.Android程序国际化、LogCat的使用、学会查看错误信息
国际化(I18N)
开发Android程序时,想让不同国家的用户看到不同的效果,就需要对这个应用进行国际化(internationalization)。国际化的应用具备支持多种语言功能,能被不同国家或地区用户同时访问,提供符合访问者阅读习惯的页面和数据。
由于国家化单词internationalization首字母“i”和尾字母“n”之间有18个字符,因此被简称为I18N
①实现国际化,这里新建一个包,专门用来演示如何国际化
②在"res/values/"目录下创建两个用于国际化的string.xml文件;创建第一个文件
③填写文件信息后,选择Locale点击 >> 按钮
④选择国家和语言,这里第一个选择以中国为例,填写完选择OK
上图中Director name后的values-zh-rCN的命名规则是“values-语言代码-r国家或地区代码”,以同样的方式在"/res/values"再次创建一个文件,选择语言以英语为例
由于module默认自带一个strings文件,而在此基础上又创建两个同名的国际化文件,Android Studio工具就会自动创建一个同名的文件夹存放这些文件,并且会根据语言和地区区分这些文件
⑤在创建好的strings.xml文件中编写内容
中文国际化文件:
英文国际化文件:
当设置好这些后,如果第二行标红,原因是没有在默认的strings.xml文件中定义一个name="text"的字符串资源,我在默认的strings.xml文件中随便定义了一个字符串资源
⑥运行,模拟器默认使用的是英语
在模拟器中将手机语言设置为中文再次打开软件;一定要重新设置手机语言,再在手机上再重新打开软件!不是再次运行一遍程序!
LogCat的使用
LogCat是Android中的命令行工具,用于获取程序从启动到关闭的日志信息。Android中的应用运行在一个单独的设备中,应用的调式信息会数除到这个设备单独的日志缓冲区中。
Android采用android.util.Log类的静态方法实现输出程序信息,Log类所输出的日志内容分为6个级别,由低到高分别是Verbose、Debug、Info、Warning、Error、Assert,前5个级别分别对应Log类中的Log.v()、Log.d()、Log.i()、Log.w()、Log.e()静态方法。Assert比较特殊,它是Android 4.0新增加的日志级别,没有对应的静态方法。
①通过编译Activity代码打印Log信息
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//参数一:MainActivity是自定义的tag信息;
//参数二:是自定义的message信息
Log.v("MainActivity","Verbose");
Log.d("MainActivity","Debug");
Log.i("MainActivity","Info");
Log.w("MainActivity","Warning");
Log.e("MainActivity","Error");
}
}
②运行结果如下图;由于LogCat输出的信息多而繁杂,找到需要的Log信息困难,因此可以使用过滤器,过滤掉不要的信息
③打开设置过滤器
tag和message信息都是在创建Log时已经定义的信息;包名和PID(注:每次重新运行项目时,PID都会发生改变)如下图:
④使用自定义的过滤器log查看输出结果
LogCat区域中日志信息显示的颜色是不同的,而且Level列*有5种类型的字母,分别是V、D、I、W、E,这些字母表示不同的级别:
verbose(V)显示全部信息,黑色
debug(D)显示调试信息,蓝色
info(I)显示一般信息,绿色
warning(W)显示警告信息,橙色
error(E)显示错误信息,红色
Android中也支持通过System.out.println()语句把信息直接输出到LogCat控制台中,不建议使用。因为Java类繁多,使用这种方式输出的调试信息很难定位到具体代码中,打印时间无法确定,也不能添加过滤器,日志没有级别区分。
查看错误信息
LogCat窗口的中间有下拉列表可以选择日志级别,假如当前选择的日志级别为error,那么在日志窗口显示的就只有错误级别的日志信息。
示范实例
①Activity中的代码;这里在for循环中故意写错,但是构建项目时它不会报错,运行后才会报错
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//1.创建字符串类型的数组
String[] str = {"A","B","C"};
//2.使用for循环;i-- 故意写错
for (int i=0; i<str.length; i--){
System.out.println(str[i]);
}
}
}
②运行,软件被强制停止
③当不知道哪里写错时,查看LogCat信息
④错误信息都会以红色提示,蓝色提示报错行数,仔细找就会看到,点击蓝色数字,光标会转到报错的代码行
⑤仔细查看代码,前后都阅读后,一般会找到错误的原因;错误已修改
⑥再次运行,没有错误,查看输出
注:本人通过所学、所知的Android知识写博客,以达到复习、学习、加深Android的相关知识。文中语气多为向他人讲解语气,但我不作为Android知识的 讲解 或 传播者 写博客,只是为了本人自己学习。文章之中肯定会出现错误,劳烦在空余之时给出指点、建议,谢谢。
本文地址:https://blog.csdn.net/wjq_wjn/article/details/107039172
下一篇: 法官重要,还是法律重要