Android基础
android四大基本组件:Activity、Service、BroadcastReceiver、ContentProvider
Activity加载模式:standard、singleTop、singleTask、singleInstance
注释代码快捷键:ctrl+shift+/(/* */)、ctrl+/(//);取消注释:ctrl+shift+\、ctrl+/
查看布局:hierarchyviewer
ctrl+z:撤销;ctrl+y:反撤销
Unfortunately,xxx.Activity has stopped错误,可以先检查AndroidManifest.xml有没有配置此Activity
override(重写):重新实现父类方法的不同功能,类似功能扩展;overloaded(重载),实现一个类的不同构造函数,为不同类调用此类构造函数初始化。
android图片支持自适应展示
如何实现图片自适应,我们用.9.patch---------
- 左侧和上侧的直线共同决定了图片的缩放区域,左侧边直线绘制的区域决定了纵向缩放的区域;上侧直线绘制的区域决定了水平方向可以缩放的区域;
- 右侧和下侧的直线共同决定了图片的内容显示区域,右侧直线绘制的区域决定了纵向内容的区域;下侧直线绘制的区域决定了水平方向上内容的区域;
- 一般内容区域的大小不缩放。
Linux chmod使用详解
修改文件的权限
chmod [options] who operator permission file-list(符号模式)
chmod [options] mode file-list (绝对模式)
参数
file-list 是chmod需要修改权限的文件名或目录的路径名
说明
Linux中主要有两种改变权限的方法
第一种:使用符号模式,例如:chmod a+x file,此处的a代表所有用户,+代表添加权限,x代表执行权限
第二种:使用绝对模式,例如:chmod 777 file,表示为所有用户添加可读可写可执行权限,三个数值分别对应三种用户类型
符号模式
who 用户类型
who | 用户类型 | 意义 |
u | User | 文件的所有者 |
g | Other | 与文件相关联的组 |
o | Other | 所有其他用户 |
a | All | 相当于ugo,所有用户 |
operator 运算符
operator | 意义 |
+ | 为指定的用户类型添加权限 |
- | 为指定的用户类型删除权限 |
= | 设定或重置指定用户类型的权限 |
permission 模式
permission | 意义 | 对文件含义 | 对目录含义 |
r | 设置读权限 | 可以查看文件内容 | 可以列出目录中的内容 |
w | 设置写权限 | 可以修改文件内容 | 可以在目录中创建、删除文件 |
x | 设置执行权限 | 可以执行文件 | 可以进入目录 |
从上面可以知道,为什么在目录的权限中r和x经常在一起设置,因为必须进入目录才能读取内容
绝对模式
绝对模式的典型范例
模 式 | 意义 |
777 | 所有用户都对文件具有读、写和执行权限 |
755 | 文件所有者对文件具有读、写和执行权限;组用户和其他用户对文件需有读和执行权限 |
711 | 文件所有者对文件具有读、写和执行权限;组用户和其他用户对文件具有执行权限 |
644 | 文件所有者可以读、写文件;组用户和其他用户可以读文件 |
640 | 文件所有者可以读、写文件;组用户可以读文件;其他用户不能访问文件 |
选项
-c 显示修改过程信息
-f 强制修改权限
-R 对目录递归修改权限
-v 显示修改过后的的信息
Linux常用命令
ls(-a):显示目录下文件列表(显示隐藏文件)
uname:显示当前操作系统名称
sudo:以超级用户身份管理文件
su:切换到超级用户
exit:退出root用户登录
mkdir:创建文件
apt-get:管理软件(apt-get purge pkg)
tar:解压缩
cal:用于查看日历等时间信息
date:可以用来显示或设定系统的日期与时间
cat:
1.一次显示整个文件。$ cat filename
2.从键盘创建一个文件。$ cat > filename (只能创建新文件,不能编辑已有文件.)
3.将几个文件合并为一个文件: $cat file1 file2 > file
cp:复制文件或目录(-r:递归复制)
mv:移动文件或目录
pwd:查看”当前工作目录“的完整路径
cd:
cd /root/Docements # 切换到目录/root/Docements
cd ./path # 切换到当前目录下的path目录中,“.”表示当前目录
cd ../path # 切换到上层目录中的path目录中,“..”表示上一层目录
rm:删除文件或目录(-rf)
ps:用于将某个时间点的进程运行情况选取下来并输出
find:
查找文件
find ./ -type f
查找目录
find ./ -type d
查找名字为test的文件或目录
find ./ -name test
查找名字符合正则表达式的文件,注意前面的‘.*’(查找到的文件带有目录)
find ./ -regex .*so.*\.gz
查找目录并列出目录下的文件(为找到的每一个目录单独执行ls命令,没有选项-print时文件列表前一行不会显示目录名称)
find ./ -type d -print -exec ls {} \;
查找目录并列出目录下的文件(为找到的每一个目录单独执行ls命令,执行命令前需要确认)
find ./ -type d -ok ls {} \;
查找目录并列出目录下的文件(将找到的目录添加到ls命令后一次执行,参数过长时会分多次执行)
find ./ -type d -exec ls {} +
查找文件名匹配*.c的文件
find ./ -name \*.c
打印test文件名后,打印test文件的内容
find ./ -name test -print -exec cat {} \;
不打印test文件名,只打印test文件的内容
find ./ -name test -exec cat {} \;
查找文件更新日时在距现在时刻二天以内的文件
find ./ -mtime -2
查找文件更新日时在距现在时刻二天以上的文件
find ./ -mtime +2
查找文件更新日时在距现在时刻一天以上二天以内的文件
find ./ -mtime 2
查找文件更新日时在距现在时刻二分以内的文件
find ./ -mmin -2
查找文件更新日时在距现在时刻二分以上的文件
find ./ -mmin +2
查找文件更新日时在距现在时刻一分以上二分以内的文件
find ./ -mmin 2
查找文件更新时间比文件abc的内容更新时间新的文件
find ./ -newer abc
查找文件访问时间比文件abc的内容更新时间新的文件
find ./ -anewer abc
查找空文件或空目录
find ./ -empty
查找空文件并删除
find ./ -empty -type f -print -delete
查找权限为644的文件或目录(需完全符合)
find ./ -perm 664
查找用户/组权限为读写,其他用户权限为读(其他权限不限)的文件或目录
find ./ -perm -664
查找用户有写权限或者组用户有写权限的文件或目录
find ./ -perm /220
find ./ -perm /u+w,g+w
find ./ -perm /u=w,g=w
查找所有者权限有读权限的目录或文件
find ./ -perm -u=r
查找用户组权限有读权限的目录或文件
find ./ -perm -g=r
查找其它用户权限有读权限的目录或文件
find ./ -perm -o=r
查找所有者为lzj的文件或目录
find ./ -user lzj
查找组名为gname的文件或目录
find ./ -group gname
查找文件的用户ID不存在的文件
find ./ -nouser
查找文件的组ID不存在的文件
find ./ -nogroup
查找有执行权限但没有可读权限的文件
find ./ -executable \! -readable
查找文件size小于10个字节的文件或目录
find ./ -size -10c
查找文件size等于10个字节的文件或目录
find ./ -size 10c
查找文件size大于10个字节的文件或目录
find ./ -size +10c
查找文件size小于10k的文件或目录
find ./ -size -10k
查找文件size小于10M的文件或目录
find ./ -size -10M
查找文件size小于10G的文件或目录
find ./ -size -10G
grep:用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来
ifgonfig:用于显示或配置网络设备(网络接口卡)的命令
ping:检查网络是否连通
Linux挂载命令
1、#mount -o rw,remount /system
2、#mount 查看挂载点
3、chmod 777 /system 获取系统权限
Eclipse搜索快捷键
ctrl+H:全文件搜索
ctrl+F:文件内查找或替换
ctrl+L:快速定位某一行
虚拟机快捷键
ctrl+alt+enter:全屏切换
ctrl+alt:返回窗口模式
ctrl+B:开机
ctrl+E:关机
ctrl+R:重启
apk签名
1、查看keystore信息:keytool -list -keystore *.keystore
2、查看签名:jarsigner -verify (-verbose -certs) *.apk
ADB常用命令
截图
adb connect 机器ip地址
cd /sdk/tools/lib (目录下有个screenshot2)
adb shell system/bin/screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png /home/john
录制
adb shell screenrecord /sdcard/demo.mp4
说明:录制手机屏幕,视频格式为mp4,存放到手机sd卡里,默认录制时间为180s
限制录制时间
参数: --time-limit
adb shell screenrecord --time-limit 10 /sdcard/demo.mp4
说明:限制视频录制时间为10s,如果不限制,默认180s
指定视频分辨率大小
参数: --size
adb shell screenrecord --size 1280*720 /sdcard/demo.mp4
说明:录制视频,分辨率为1280*720,如果不指定默认使用手机的分辨率,为获得最佳效果,请使用设备上的高级视频编码(AVC)支持的大小
指定视频的比特率
参数: --bit-rate
adb shell screenrecord --bit-rate 6000000 /sdcard/demo.mp4
说明:指定视频的比特率为6Mbps,如果不指定,默认为4Mbps. 你可以增加比特率以提高视频质量或为了让文件更小而降低比特率
旋转90度
参数: --rotate
说明:此功能为实验性的,好不好用不知道
导出视频
adb pull /sdcard/demo.mp4
挂载管理系统app
adb shell
cd /system/app
ls
rm -rf *.apk
adb remount
adb push **.apk /system/app
adb pull /data/system/packages.xml /home
将MP4等视频格式转换为GIF
ffmpeg -t 26 -ss 00:00:01 -i 1.mp4 1.gif
注释:26是秒数,00:00:01是开始时间