在Android开发中,LogCat是一个非常重要的调试工具,可以输出很多信息。LogCat输出类型一般有五种:verbose, debug, info, warn, error。这些层次是向下兼容的。我们可以通过进程ID、项目包名、tag标签、text输出文本来限定输出范围。
主要通过定义Filter来实现。如下图所示:
在Android开发中,LogCat是一个非常重要的调试工具,可以输出很多信息。LogCat输出类型一般有五种:verbose, debug, info, warn, error。这些层次是向下兼容的。我们可以通过进程ID、项目包名、tag标签、text输出文本来限定输出范围。
主要通过定义Filter来实现。如下图所示:
Activity是Android中的四大重要组件之一,必须了解的点,主要是它的生命周期:
主要有一下几个过程:
但是知道这些还不够,我们必须亲自试验一下才能深刻体会,融会贯通。下面是示例:
###启动时:
###锁屏时:
###解锁时:
其中还有一个onSaveInstanceState方法,该方法调用是在onPause方法之后,主要有三种情况调用:
当屏幕旋转时,android会先销毁当前Activity,再建一个新的,log如下:
本人比较喜欢使用JetBrains的Intellij IDEA作为java的开发工具,所以在Intellij中搭建的Android开发环境,Intellij中包含了Android的插件,如果没有包含,可以自行搜索下载。另外,我用的是Genymotion充当android模拟器,Intellij自带的模拟器太慢,配置主要遇到了几个问题:
###Android sdk的下载:
很遗憾的是,这个Android sdk更新网站要翻墙,所以需要翻墙下载(翻墙你懂的)。然后就是在Setting中设置路径。
###首次运行Android小程序出现java -source 1.3中不支持注释:
本来以为需要下载更新的jdk,后来发现只要在Project Structure的Project中设置Project language level就行了。
###Compilation failed:internal java compiler error:
重新在Setting中设置下Java Compiler就行,设成你电脑上对应的版本。
###Genymotion安装出错:VirtualBox can’t run the virtual device,错误图如下所示:
系统为win10,网上很多方法,比如,更改网络连接,使用管理员权限启动程序,修改注册表等等;但我都试了下,还没解决,看了日志文件发现上面说的是不能激活,看起来像是要花钱购买,但是网上个人使用的似乎不用花钱。待解决~~~
在Linux系统中每个用户都有自己专属的运行环境,由各自的环境变量定义。用户可以设置临时环境变量:
export NAME=”hello word”
exho $NAME
env命令用来查看当前用户的环境变量。
下面介绍登录linux环境变量执行过程:
首先启动/etc/profile文件,然后启动用户目录下的~/.bash_profile, ~/.bash_login或~/.profile三个文件中的一个,执行的顺序为:~/.bash_profile, ~/.bash_login, ~/.profile。如果~/.bash_profile文件存在的话,一般还会执行~/.bashrc文件。因为~/.bashrc文件中还会调用./etc/bashrc,所以总的执行顺序为:
/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> ./etc/bashrc -> ~/.bash_logout
各文件作用说明:
对于用户的shell初始化而言是先执行/etc/profile,再读取文件/etc/environment;对整个系统而言是先执行/etc/environment。
登录系统的顺序:
/etc/environment–>/etc/profile–>$HOME/.profile–>$HOME/.env
/etc/profile:是所有用户的环境变量
/etc/environment:是系统的环境变量
登录系统时shell读取顺序是:
/etc/profile–>/etc/environment–>$HOME/.profile–>$HOME/.env
场景:有个Hadoop集群,有两个用户,各自都配有Hadoop,更改的端口,能正常启动,各自把hadoop的配置写在了~/.bashrc文件中。两个hadoop可以同时启动,并且运行wordcount程序正常。
问题:现在一个root账户,一个ericson账户,两个账户都配置了hadoop,当我用root账户启动命令行,并且用su ericson转到ericson账户下启动hadoop,会出现问题。(该问题应该和linux配置文件执行顺序机制有关)
解决:在Linux装软件,配置环境时,尽量要用当前用户登录命令行,有时候可能会需要重新开启命令行来加载更改的环境变量。
###补充
上面之所以不能su切换用户,主要是ericson的环境变量设置错了,没有覆盖root的用户环境变量,导致运行出错。还有种方法是用su -来切换用户,示例如下:ericson里面没有设置HADOOP_YARN_HOME变量,而root里面设置了HADOOP_YARN_HOME变量为自己的hadoop路径,当ericson启动hadoop或运行hadoop时,就会读取该配置,由于hadoop的版本不一样,可能导致错误。