com.android.pngp.tln,杂七杂八的记录

这篇博客会整理这些天的一些笔记,比较杂乱,算是自己的一个笔记吧。

Linux常用命令

文字界面切换登录界面:

ctrl+alt + f1 ~ f6

ubuntu300分钟关闭

sudo shutdown +300

在指定时间关闭电脑

shutdown -h 20:30

查看ubuntu版本:

cat /etc/issue

显示当前内存大小:

free -m

回到图形管理界面:

ctrl+alt +f7

显示当前所支持的语言:

echo $LANG

简单的计算器:

bc

显示日历

cal 10 2017

关闭当前终端

ctrl+d

将内存中的数据同步写入到磁盘中

sync

显示当前登录的用户

whoami

arch

查看cpu信息

lscpu

查看命令相关信息

whatis grep

which man

whereis man

查看当前linux的内核版本

uname -r

显示当前的真实路径,而不是链接路径

pwd -P

加上-m参数,会忽略默认的权限,可以自己设定权限

mkdir -m 111 folder

更改目录权限

chmod a+x folder

打印当前所有的环境变量

echo $PATH

查看当前系统设置了多少别名

alias

basename 目录

dirname 目录

查看文件内容加上行号

cat -n /home/user/Desktop/info.txt

查看文件默认权限

umask -S

用chattr命令防止系统中某个关键文件被修改

chattr +i /etc/resolv.conf 设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容

chattr -i file

lsattr /etc/resolv.conf

查看文件类型

file file

查看local目录硬盘使用情况:

df -h /local

查看目录或者文件的大小:

du -sh /local

列出最近使用的10条命令

history 10

!number 执行该条命令

从 本地 复制到 远程,-r表示可以递归赋值文件夹

scp -r /local/temp/temp_music/i_miss.mp3 user@10.92.36.36:/local/sda/develop/development_tool

从 远程 复制到 本地

scp user@10.92.36.36:/local/sda/develop/development_tool/gradle-2.2.1-all.zip /local/temp/

从当前文件夹中搜索所有包含"denied_required_permission"字符串的xml文件

grep -rn --include="*.xml" "denied_required_permission" ./

显示两层目录树:

tree -L 2

转换字符串的大小:

echo "HELLO WORLD" | tr 'A-Z' 'a-z'

删除文件中的重复行:

cat test.txt|sort -u

find / -name filename.txt根据名称查找/目录下的filename.txt文件。

find . -name “*.xml”递归查找所有的xml文件

find . -name “*.xml” |xargs grep “hello world”递归查找所有文件内容中包含hello world的xml文件

grep -H ‘spring’ *.xml查找所以有的包含spring的xml文件

find ./ -size 0 | xargs rm -f &删除文件大小为零的文件

ls -l | grep ‘jar’查找当前目录中的所有jar文件

grep ‘test’ d*显示所有以d开头的文件中包含test的行。

grep ‘test’ aa bb cc显示在aa,bb,cc文件中匹配test的行。

grep ‘[a-z]/{5/}’ aa显示所有包含每个字符串至少有5个连续小写字符的字符串的行。 查看一个程序是否运行 ps –ef|grep tomcat查看所有有关tomcat的进程 终止线程 kill -9 19979终止线程号位19979的线程 查看文件,包含隐藏文件 ls -al 当前工作目录 pwd 复制文件 cp sourceFolder targetFolder 创建目录 mkdir newfolder mkdir -p dir/dir1/dir2/dir3 创建多级目录 计算文件的字数和行数 echo "hahatest" | wc 删除目录 rmdir deleteEmptyFolder删除空目录rm -rf deleteFile递归删除目录中所有内容 移动文件 mv /temp/movefile /targetFolder 重命令 mv oldNameFile newNameFile 切换用户 su -username 修改文件权限 chmod 777 file.java//file.java的权限-rwxrwxrwx,r表示读、w表示写、x表示可执行 压缩文件 tar -czf test.tar.gz /test1 /test2 列出压缩文件列表 tar -tzf test.tar.gz 解压文件 tar -xvzf test.tar.gz 查看文件头10行 head -n 10 example.txt 查看文件尾10行 tail -n 10 example.txt 查看日志类型文件 tail -f exmaple.log//这个命令会自动显示新增内容,屏幕只显示10行内容的(可设置)。 使用超级管理员身份执行命令 sudo rm a.txt使用管理员身份删除文件 查看端口占用情况 netstat -tln | grep 8080查看端口8080的使用情况 查看端口属于哪个程序 lsof -i :8080 查看进程 ps aux|grep java查看java进程 ps aux查看所有进程 以树状图列出目录的内容 tree a 文件下载 wget http://file.tgz curl http://file.tgz 网络检测 ping www.taobao.com ping -c 10 -i 1 www.csdn.net 每隔1秒ping www.csdn.net 10次 远程登录 ssh userName@ip 打印信息 echo $JAVA_HOME打印java home环境变量的值 locate命令快速查找 locate -r ^/var/lib/dpkg/info/ 查找以/var/lib/dpkg/info/开头的文件 locate -r makefile$ 查找以makefile结尾的文件 locate -i makefile 查找时不区分大小写,使用 -i locate /etc/sh 查找etc目录下所有以sh开头的文件 设置环境变量 export ANDROID_HOME=/Volumes/warehouse/dev-tools/sdk/tools

android常用命令

screenrecord的使用

screenrecord的使用:

开始录制:

adb shell screenrecord /sdcard/demo.mp4

限制录制时间:

adb shell screenrecord --time-limit 10 /sdcard/demo.mp4

指定视频分辨率的大小

adb shell screenrecord --size 1280*720 /sdcard/demo.mp4

指定视频比特率:比特率越大,视频质量越好

adb shell screenrecord --bit-rate 6000000 /sdcard/demo.mp4

屏幕截图

screencap -p /storage/sdcard0/amp/test.png

adb shell getprop 可以获取手机系统的配置参数

heapgrowthlimit是单个应用程序内存的最大限制

am 命令的使用

显式启动Activity:

am start -n {包名}/{包名}.{活动名}

隐式启动Activity:

am start -a {指定的action} -d {URI}

隐式启动服务:

am startService -a {指定的action}

隐式发送广播:

am broadcast -a {指定的action}

启动Calculator应用:

am start -n com.android.calculator2/com.android.calculator2.Calculator

Starting: Intent { cmp=com.android.calculator2/.Calculator }

am start -n com.android.calculator2/.Calculator

Starting: Intent { cmp=com.android.calculator2/.Calculator }

启动应用并带有URL参数:

am start -a android.intent.action.VIEW -d http://www.baidu.com

Starting: Intent { act=android.intent.action.VIEW dat=http://www.baidu.com }

am start -a android.intent.action.CALL -d tel:12345

Starting: Intent { act=android.intent.action.CALL dat=tel:xxx-xxx-xxxx }

几种VIEW类型(查看)的启动:

am start -a android.intent.action.VIEW -d file:///sdcard/image.jpg -t image/* am start -a android.intent.action.VIEW -d file:///sdcard/audio.mp3 -t audio/* am start -a android.intent.action.VIEW -d file:///sdcard/video.3gp -t video/* 禁止包(或者组件),清除包的数据,可以排除个别包的影响。

dumpsys 命令的使用

adb shell dumpsys notification

adb shell dumpsys activity---------------查看ActvityManagerService 所有信息

adb shell dumpsys activity activities----------查看Activity组件信息

adb shell dumpsys activity services-----------查看Service组件信息

adb shell dumpsys activity providers----------产看ContentProvider组件信息

adb shell dumpsys activity broadcasts--------查看BraodcastReceiver信息

adb shell dumpsys activity intents--------------查看Intent信息

adb shell dumpsys activity processes---------查看进程信息

adb shell dumpsys meminfo com.android.mms 查看mms使用的内存情况

pm命令的使用

adb shell pm list package -e 列出手机上可用的所有应用

pm list packages -d 列出手机上不可用的所有应用、

pm list packages -s 列出手机上的系统应用

pm enable com.tct.note 使应用可用

pm disable com.tct.note 是应用不可用

pm path com.tct.note 打印出该包名所对应的apk的完整路径

pm list packages 查看手机上所有的应用的包名

pm list permission-groups 列出手机上的所有的权限组

pm list permissions 列出手机上所有的权限

pm list features 列出手机上的硬件功能

pm dump com.tct.note > storage/sdcard0/temp/dump.txt 将该应用的相关信息输出到文件

pm get-install-location com.tct.note 得到应用安装的路径 0:自动 1:内部存储 2:外部存储

pm disable {包名.组件名}

pm enable {包名.组件名}

pm clear {包名}

pm set-install-location

pm get-install-location

adb shell top -m 5 -s cpu 查看cpu使用前五的应用

dcpdump命令的使用

adb shell tcpdump

tcpdump命令是对网络上的数据包进行截获的工具(抓包工具)

tcpdump -i any -p -s 0

tcpdump -i any -p -s 0 -w

adb shell tcpdump -i any -p -vv -s 0 -w /sdcard/capture.pcap

adb 抓取raido log:

adb logcat -v time -b radio log

adb 抓取kernel log:

adb shell dmesg log

adb bugreport > bugreport.txt

sqlite3###命令的使用

sqlite查看数据库

sqlite3 mmssms.db 选择当前数据库

.table 查看所有的表

如果输入错误,则输入一个分号 ;

.schema 查询表结构

.mode line 设置查询的显示人性化

select * from audio;

.exit 退出当前的数据库

pragma table_info(TABLE_NAME) 查看表的数据结构 每个SQLite数据库中都还有一个隐藏的sqlite_master表,这里记载了当前数据库中所有表的建表语句,可以使用select * from sqlite_master命令进行查看 也可以使用select * from sqlite_master where name='表名' 来过滤

aapt命令的使用

列出apk压缩包的目录

aapt l test.apk

查看apk包的各种详细信息

aapt dump badging test.apk

查看权限

aapt dump permissions test.apk

查看apk的资源列表

aapt dump resources test.apk

使用keytool获得证书的签名信息

keytool -list -v -keystore 签名证书的路径

注意:Eclipse 生成的签名证书是.keystore结尾的,Android Studio 生成的签名证书是.jks结尾的,这一点要注意哦

其他未归类的

cat sys/class/net/ccmni0/address 查看手机mac地址

adb install -s ***.apk 安装到sdcard

adb uninstall -k 包名 卸载apk保留缓存文件

查看当前手机的已经连接过的热点信息

cd data/misc/wifi

cat wpa_supplicant.conf

cat /system/build.prop 获取设备名称

android studio

第一次运行androidstudio,如果不能够进入,需要在

android-studio/bin/idea.properties文件最后添加一句:

disable.android.first.run=true

androidStudio生成jar文件: jar cvf classes.jar app/src/

android studio配置私服

allprojects {

repositories {

maven{ url 'http://maven.oschina.net/content/groups/public/'}

//maven { url "http://10.92.35.239:8081/nexus/content/repositories/central/"} jcenter() } }

android studio常用快捷键

Shift+F6 重构-重命名

Ctrl+Shift+先上键

Ctrl+X 删除行

Ctrl+D 复制行

Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/*...*/ )

Ctrl+J 自动代码

Ctrl+E 最近打开的文件

Ctrl+H 显示类结构图

Ctrl+Q 显示注释文档

Alt+F1 查找代码所在位置

Alt+1 快速打开或隐藏工程面板

Ctrl+Alt+ left/right 返回至上次浏览的位置

Alt+ left/right 切换代码视图

Alt+ Up/Down 在方法间快速移动定位

Ctrl+Shift+Up/Down 代码向上/下移动。

F2 或Shift+F2 高亮错误或警告快速定位

代码标签输入完成后,按Tab,生成代码。

选中文本,按Ctrl+Shift+F7 ,高亮显示所有该文本,按Esc高亮消失。

Ctrl+W 选中代码,连续按会有其他效果

选中文本,按Alt+F3 ,逐个往下查找相同文本,并高亮显示。

Ctrl+Up/Down 光标跳转到第一行或最后一行下

Ctrl+B 快速打开光标处的类或方法

最常用快捷键

1.Ctrl+E,可以显示最近编辑的文件列表

2.Shift+Click可以关闭文件

3.Ctrl+[或]可以跳到大括号的开头结尾

4.Ctrl+Shift+Backspace可以跳转到上次编辑的地方

5.Ctrl+F12,可以显示当前文件的结构

6.Ctrl+F7可以查询当前元素在当前文件中的引用,然后按F3可以选择

7.Ctrl+N,可以快速打开类

8.Ctrl+Shift+N,可以快速打开文件

9.Alt+Q可以看到当前方法的声明

10.Ctrl+W可以选择单词继而语句继而行继而函数

11.Alt+F1可以将正在编辑的元素在各个面板中定位

12.Ctrl+P,可以显示参数信息

13.Ctrl+Shift+Insert可以选择剪贴板内容并插入

14.Alt+Insert可以生成构造器/Getter/Setter等

15.Ctrl+Alt+V 可以引入变量。例如把括号内的SQL赋成一个变量

16.Ctrl+Alt+T可以把代码包在一块内,例如try/catch

17.Alt+Up and Alt+Down可在方法间快速移动

下面的不是很有用

18.在一些地方按Alt+Enter可以得到一些Intention Action,例如将”==”改为”equals()”

19.Ctrl+Shift+Alt+N可以快速打开符号

20.Ctrl+Shift+Space在很多时候都能够给出Smart提示

21.Alt+F3可以快速寻找

22.Ctrl+/和Ctrl+Shift+/可以注释代码

23.Ctrl+Alt+B可以跳转到抽象方法的实现

24.Ctrl+O可以选择父类的方法进行重写

25.Ctrl+Q可以看JavaDoc

26.Ctrl+Alt+Space是类名自动完成

27.快速打开类/文件/符号时,可以使用通配符,也可以使用缩写

28.Live Templates! Ctrl+J

29.Ctrl+Shift+F7可以高亮当前元素在当前文件中的使用

30.Ctrl+Alt+Up /Ctrl+Alt+Down可以快速跳转搜索结果

31.Ctrl+Shift+J可以整合两行

32.Alt+F8是计算变量值

sumbline常用快捷键

Ctrl+L 选择整行(按住-继续选择下行)

Ctrl+KK 从光标处删除至行尾

Ctrl+Shift+K 删除整行

Ctrl+Shift+D 复制光标所在整行,插入在该行之前

Ctrl+J 合并行(已选择需要合并的多行时)

Ctrl+KU 改为大写

Ctrl+KL 改为小写

Ctrl+D 选词 (按住-继续选择下个相同的字符串)

Ctrl+M 光标移动至括号内开始或结束的位置

Ctrl+Shift+M 选择括号内的内容(按住-继续选择父括号)

Ctrl+/ 注释整行(如已选择内容,同“Ctrl+Shift+/”效果)

Ctrl+Shift+/ 注释已选择内容

Ctrl+Z 撤销

Ctrl+Y 恢复撤销

Ctrl+M 光标跳至对应的括号

Alt+. 闭合当前标签

Ctrl+Shift+A 选择光标位置父标签对儿

Ctrl+Shift+[ 折叠代码

Ctrl+Shift+] 展开代码

Ctrl+KT 折叠属性

Ctrl+K0 展开所有

Ctrl+U 软撤销

Ctrl+T 词互换

Tab 缩进 自动完成

Shift+Tab 去除缩进

Ctrl+Shift+↑ 与上行互换

Ctrl+Shift+↓ 与下行互换

Ctrl+K Backspace 从光标处删除至行首

Ctrl+Enter 光标后插入行

Ctrl+Shift+Enter 光标前插入行

Ctrl+F2 设置书签

F2 下一个书签

Shift+F2 上一个书签

android常用小知识

android关闭应用的三种方式

android.os.Process.killProcess(android.os.Process.myPid());

System.exit(0);

ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);

activityManager.restartPackage(getPackageName());

BidiFormatter的使用

BidiFormatter包装Unicode字符串,这样就可以微调您的文本渲染在RTL脚本提供了一组简单的API

String numberWhenContact;

numberWhenContact = contactInfo.number;

if(null != numberWhenContact) {

BidiFormatter bidiFormatter = BidiFormatter.getInstance();

numberWhenContact = bidiFormatter.unicodeWrap(numberWhenContact,

TextDirectionHeuristics.LTR);

}

设置AlertDialog按钮的可点击状态

有的时候,在某些特定的条件下,需要修改alertdialog中的按钮的可点击状态

Button positiveBtn = ((AlertDialog)dialog).getButton(AlertDialog.BUTTON_POSITIVE);

positiveBtn.setEnabled(false);

需要注意的是,这个代码必须在dialog显示之后,也就是调用dialog.show之后才可以的,否则会出现空指针异常

java代码随机生成汉字

private static char getRandomChar() {

String str = "";

int hightPos; //

int lowPos;

Random random = new Random();

hightPos = (176 + Math.abs(random.nextInt(39)));

lowPos = (161 + Math.abs(random.nextInt(93)));

byte[] b = new byte[2];

b[0] = (Integer.valueOf(hightPos)).byteValue();

b[1] = (Integer.valueOf(lowPos)).byteValue();

try {

str = new String(b, "GBK");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

System.out.println("错误");

}

return str.charAt(0);

}

代码控制是否显示状态栏

private void showStatusBar() {

View decorView = getWindow().getDecorView();

decorView.setSystemUiVisibility(

View.SYSTEM_UI_FLAG_LAYOUT_STABLE

| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION//隐藏状态栏的布局

| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN//内容布局填满屏幕

);

}

//隐藏系统状态栏

private void hideStatusBar() {

View decorView = getWindow().getDecorView();

decorView.setSystemUiVisibility(

View.SYSTEM_UI_FLAG_LAYOUT_STABLE

| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION//隐藏状态栏的布局

| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN//内容布局填满屏幕

| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION//隐藏状态栏

| View.SYSTEM_UI_FLAG_FULLSCREEN//内容全屏展示

| View.SYSTEM_UI_FLAG_IMMERSIVE

);

}

onCreate中获取View的宽度和高度

int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);

int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);

ssidtext.measure(w, h);

int width =ssidtext.getMeasuredWidth();

int height =ssidtext.getMeasuredHeight();

ViewTreeObserver vto = ssidtext.getViewTreeObserver();

vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {

public boolean onPreDraw() {

int height = ssidtext.getMeasuredHeight();

int width = ssidtext.getMeasuredWidth();

return true;

}

});

获取整个文件的MD5摘要

private static String getFileMD5(File file) throws NoSuchAlgorithmException, IOException {

if (!file.isFile()) {

return null;

}

MessageDigest digest;

FileInputStream in;

byte buffer[] = new byte[1024];

int len;

digest = MessageDigest.getInstance("MD5");

in = new FileInputStream(file);

while ((len = in.read(buffer, 0, 1024)) != -1) {

digest.update(buffer, 0, len);

}

in.close();

BigInteger bigInt = new BigInteger(1, digest.digest());

return bigInt.toString(16);

}

android获取text宽度的三种方式

String str = "Hello";

canvas.drawText( str , x , y , paint);

//1. 粗略计算文字宽度

Log.d(TAG, "measureText=" + paint.measureText(str));

//2. 计算文字所在矩形,可以得到宽高

Rect rect = new Rect();

paint.getTextBounds(str, 0, str.length(), rect);

int w = rect.width();

int h = rect.height();

Log.d(TAG, "w=" +w+" h="+h);

//3. 精确计算文字宽度

int textWidth = getTextWidth(paint, str);

Log.d(TAG, "textWidth=" + textWidth);

public static int getTextWidth(Paint paint, String str) {

int iRet = 0;

if (str != null && str.length() > 0) {

int len = str.length();

float[] widths = new float[len];

paint.getTextWidths(str, widths);

for (int j = 0; j < len; j++) {

iRet += (int) Math.ceil(widths[j]);

}

}

return iRet;

}

android中添加一个指向特定url的链接

/* * 在桌面添加快捷方式 * @param icon 快捷方式图标 * @param name 快捷方式名称 * @param uri 快捷方式的intent Uri */

public void addShortcut(Parcelable icon, String name, Uri uri){

Intent intentAddShortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");

//添加名称

intentAddShortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);

//添加图标

intentAddShortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);

//设置Launcher的Uri数据

Intent intentLauncher = new Intent();

intentLauncher.setData(uri);

//添加快捷方式的启动方法

intentAddShortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intentLauncher);

sendBroadcast(intentAddShortcut);

}

Parcelable icon = Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher);

addShortcut(icon, "百度",Uri.parse("http://www.baidu.com"));

记得添加权限

fragment重用

当存在多个fragment只是引用的布局不同的时候,可以使用下面的方法来封装

public class ProductTourFragment extends Fragment{

final static String LAYOUT_ID = "layoutid";

public static ProductTourFragment newInstance(int layoutId) {

ProductTourFragment pane = new ProductTourFragment();

Bundle args = new Bundle();

args.putInt(LAYOUT_ID, layoutId);

pane.setArguments(args);

return pane;

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

ViewGroup rootView = (ViewGroup) inflater.inflate(getArguments().getInt(LAYOUT_ID, -1), container, false);

return rootView;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值