android入门开发之linux文件权限(六)

前言

说到权限,相信大部分人都用的还是windows系统,既然说到了权限这一块,我就不得不吐槽windows权限做的真是垃圾中的战斗机,没有比windows权限做的更垃圾的了。相反,linux系统下的权限控制就做的比较好,所以呼吁广大小伙伴们,特别是深受windows荼毒的小伙伴,赶紧弃win选linux吧。反正我是等到买了mac后,宁愿用mac os都不用windows了。真的是太恶心,太垃圾了。当然windows也有做的比较好的一面,像图形用户界面的交互做的就比较好,要是哪天能够把权限做的像linux一样,我估计我还是会选择windows的,不过我估计是不可能了,我还是安安心心用我的linux去了。

可能有小伙伴会有疑问,为什么要把权限这点小知识点单独拎出来讲,我个人认为android是在linux的基础上进行开发的,本质其实还是linux,我觉得既然作为一个android开发者,连linux文件权限都不清除的话,好像有点说不过去。

生成不同权限的文件

既然我们要看linux下的权限说明,我们就从基础入手,我们先用代码在我们之前创建的HelloWorld中写上如下代码:

这几行代码执行完成之后,我们利用adb shell指令进入当前模拟器的linux环境

  • 执行 adb shell

  • 执行 cd data/data/com.selfassu.helloworld 注意:后面的com.selfassu.helloworld换成你自己的应用包名

  • 执行ls -l 显示当前目录所有文件列表
  • 执行cd files 进入files目录
  • 执行ls -l

  • 以上几步做完之后,你就可以看到在files(路径:data/data/package/files)文件夹下,有一下四个文件,名字分别为append.txt, private.txt, readable.txt, writable.txt, 创建的文件对应不同的数据权限。或许你现在看不懂-rw-rw—-是什么意思,但是别着急,我们马上就来给你分析分析这一串数据代表的意义。

注意:

执行adb shell指令时候,出现
error: more than one device/emulator

错误,出现这个错误的原因主要是因为设备不止一台,我们要进入某一台的设备shell环境下,必须指定需要进入的shell环境的设备序列号:

adb -s 设备序列号 shell 

linux权限详解

权限字符串解释

linux文件权限一共有十位,第一位是单独一组,后面的九位是每三位一组。

第1位代表的是文件的类型:

  1. 如果是”d”,就是文件夹
  2. 如果是”l”,文件快捷方式
  3. 如果是”-“, 就是文件

第2到4位是所属用户对文本的权限

  1. r 读权限
  2. w 写权限
  3. x 执行权限

第5到7位 是该文件所属用户组对该文件的权限

  1. r 读权限
  2. w 写权限
  3. x 执行权限

第8到10位 是其他用户对该文件的权限

  1. r 读权限
  2. w 写权限
  3. x 执行权限

将字母转换成二进制

  1. 用二进制表示:
  2. 规则
    1. 如果是-,就用0来表示,
    2. 如果不是-,就用1表示。

将二进制的数字转换成十进制

  1. 换成十进制后,可以用linux指令更改文件权限
  2. 这样说是不是太抽象了。那么可以,我们举个栗子:
    1. -rwxrw-r– 换成二进制数字为111110100(注意第一位不需要换算成二进制的数字)
    2. 第一位的“-”, 可能是“d” 或者“l”,这一位是没有办法改变的,这个是文件的固有属性,就像人出生一样,有的人一出生就是男性,而有的人一出生就是女性,比喻不太恰当,但是我觉得正好可以说明这个问题。
    3. 按照上面的分法,将二进制数字每三位换成十进制数字就是:764
    4. 下面你们自己做做 -rw-rw–w- 这个对应的十进制的权限数字是多少呢?

好啦,这样是不是看起来更容易理解一点?

使用指令chmod更改linux文件权限

  1. linux中更改文件权限的指令是chmod,是change mode的简写
  2. 然后使用linux指令更改权限

    chmod 764 文件名称
    

我已经更改了private.txt文件的权限,细心的小伙伴可以仔细看看,private.txt的权限是不是和之前不一样了?是不是so easy?你没有猜错,linux下更改文件权限就是这么简单。比windows强多了,在权限这点上。

linux权限的详细图解

详细图解如图所示

总结

android中的文件权限大致就是这样吧,当然,权限肯定不止这些,更深入的还需要你们自己去挖掘。下一节我们来一起学习一下android开发中的UI设计。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值