IT蘑菇

记录学习每一点滴


  • 首页

  • 归档

  • 标签

  • 搜索

初学安卓之概要

发表于 2017-03-30   |   分类于 Android , 程序文档

17年3月26日买了“第一行代码 第2版”的书本,这是我见过比较幽默的一本书,按照其学习了一小部分,第二天复习并多学了1章。今天又返回前面看过的章节反复查询与测试,并重新观看以尽量搞懂安卓的一个大概!

四大组件

安卓分为四大组件,分别是活动(Activity)、服务、广播接收器、内容提供器

正文

以Android Studio为例,首先新建了个项目,其目录结构最主要的是app这个文件夹,其他的多用于自动生成,由于初学暂且略过,书本中也有一部分介绍。
app目录展开后分为build,libs,src,test。其中有用的就是src目录,继续展开,可以看见java,res文件夹和一个AndroidManifest.xml文件。
包(Package)其实就是文件夹的意思了,每个点就代表下一级文件夹,package就放在java文件夹下, .java源码文件就放在package下。这里说的不太对,在安卓中还是习惯说“活动(Activity)”就放在java目录里的包里头。活动就是安卓四大组件之一。用.java格式的源码文件来编写安卓的活动页面;res目录继续展开,可以看到drawable,mipmap.mipmap-xxx,values等文件夹,其中drawable用于保存图片,layout用来存放布局文件(也就是xml文件),values用来存储字符串。
安卓讲究视图与逻辑分离的结构,所以,用xml来进行布局,其存放在layout目录下,可以通过@等方式引用其他id或者定义一些内容。
那么,之前所说的java文件夹下的源码文件,也就是Activity活动组建之一,在活动中就通过setContentView(R.layout.xxxx)来引入布局文件,xxxx为布局文件xml的文件名字不包含后缀。
假如引入的布局文件为hello_world_layout,那么打开hello_world_layout.xml查看一些布局文件的信息如下:

android:id="@+id/hello_world_layout"   //给xml定义一个id_name,这边的id_name为/号后面的部分
……
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World"    //字符串内容
/>

在活动中,通过setContentView(R.layout.hello_world_layout)来引入xml,这个id就在如上进行了定义,TextView是安卓提供的一个控件,用于在布局中显示文字,android:text就是用来定义文字的文本。

再回归刚才的目录,所以以mipmap开通的文件夹是用来存放应用程序图标的,之所以那么多,是为了让应用程序更好的兼容设备。分别有高分辨率版本和低分辨率版本。当然,drawable也不例外,只是Android Studio没有自动帮我们生成。

最后说说AndroidManifest.xml文件,我看懂的意思也就是所有的活动都需要在此注册一遍吧,如不注册活动便不能使用。由于Android Studio自动帮忙注册了,那我是听说以前用Eclipse + ADT的人经常忘记注册导致程序运行时崩溃,没体验过。

打开看了下内容,做个归纳总结。比如之前创建了个活动,就是引入一个布局文件。那么那个就要进行注册。由于我后来又新建了新的项目与新的活动,所以只是拿这个来说事一下:

 <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".FirstActivity"
            android:label="This is FirstActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".SecondActivity"></activity>
    </application>

主要看到application标签里面,每个活动的注册格式如下:

<activity android:name=".xxxxxxx"></activity>

每个活动就用一个标签,多个活动就用多个这样的标签就好,其中xxxx部分为活动的名称,刚才说过活动其实就是java目录下的。java源码文件,所以就是其文件名不包含后缀。前面的一个点号,代表一个完整的包名,不过AndroidManifest.xml这个文件中的manifest标签里默认定义了package,所以用.号来表示省略。

但是以antivity外注册完成后安装是可以装但不会显示安装程序图标,那是因为活动可能有多个,但是你没有设置一个主活动。主活动就是用于启动APP时候触发的第一个活动。所以主活动要在intent-filter里进行注册,刚才的代码已经展示过了,如下重新展示主活动部分注册的代码:

<activity
    android:name=".FirstActivity"
    android:label="This is FirstActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

我已经说了这是另外新建的一个项目的其他活动内容,所以就不是Hello World了,上面的android:name遵循正常定义活动的格式,其中,label是比其他活动多出来的一个参数,他具有一个功能就是定义顶部的标题栏的名字。不仅仅如此,label同时还作为桌面APP启动图标的名称。intent-filter里面的内容是主活动的最关键的两行代码,就当成照常格式好了。其他的活动IDE会帮忙自动注册。

这几天初学入门以来最大的理解与收获,可能写的比较乱,语序也不是那么的好,可能只有自己能看懂。但我还是要记录一下,给自己好好回味回味!

有关IP地址参合一些个人理解

发表于 2017-03-06   |   分类于 网络文档 , IP

PC0网关:192.168.1.1
PC1网关:192.168.2.1

网关:大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。
4589205.jpg
我们平常一般指路由器设备,路由器的ip地址,最后一个地址段中的1一般用于表示路由器的ip地址。再此端口下延伸的192.168.1.2、192.168.1.3这些ip,则我们就说这些ip处于同一局域网。
当然PC1的则是192.168.2.1、192.168.2.2.这又是另外一个局域网了,当然倒数第二个地址段也能用1表示,这边为了区分采用2表示。
上述的ip其实叫做内网ip,而默认要接入互联网,每台路由器都将获得由一个公网ip,公网ip是运营商给每个人分配的接入互联网的外网ip。基本上所有接入互联网的其他主机都能互相访问,但无法使用80端口。

DHCP:前面既然说到同一个局域网的问题,假如接入路由器的设备比较多的时候,那么DHCP就会自动给内网设备分配ip地址以防冲突,也可以叫做动态分配。如先来后到的这种分配方法:192.168.123.1、192.168.123.2

网段:一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。例如,从192.168.0.1到192.168.255.255这之间就是一个网段。

linux系统端口的开放设置

发表于 2017-03-06   |   分类于 Linux , 网络文档

设置86端口外网访问命令有关步骤:

iptables -A INPUT -p tcp --dport 86 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 86 -j ACCEPT
iptables -L -n

Linux系统的chmod分配与个人理解

发表于 2017-03-06   |   分类于 Linux , 网络文档

在Linux系统中,rwx代表了三种权限(基本)
r-read读、w-write写、x-execute执行(例如exe执行权限)
其中以下表示为Linux系统中三种用户类型:
u-所有者(user)、g-所属组(group)、o-其他人(other)
Linux查看文件的默认权限显示方式:
-rwxr-xr-x,一共有10条“-”线,其中第二个“-”到第四个,代表用户所具有的权限,第五个到第七个代表用户组所具有的权限,第八个到第十个代表其他人的权限。

命令格式:(不常用)

chmod u + r
      g - w
      o = x

详解:我们所熟知的Linux用户的一些文件/目录的权限分配法,其中“+”号代表加上权限,“-”号代表去除权限,“=”代表不管以前权限是什么,直接设定为新权限;但是我们也需要知道,此表示方法并不常用,因为在大多数应用环境中,编写的代码都是以数字表示,基本没有人用此方法表示。
简易写法:chmod u+wx chmod o-rx g=wrx

Linux系统中常用数字来表示权限,具体方法如下:

r-4  w-2  x-1

命令格式:(常用)

rwxr-xr--    754
rw-r-x--x    651
rwxr-x-w-    752

详解:在Linux系统中,r代表4,w代表2,x代表1;从上述命令可知,如果“rwx”同时存在这该组的数字为7,只有“r-x”该组数字为5,只有“r”则数字为4,只有“x”则数字为1,只有“w”则数字为2,一共3个数字以此来对该文件或者目录进行权限分配。

【区分目录与文件的rwx】
文件:

r-cat、more、head、tail
w-echo、vi
x-命令、脚本

目录:

r-ls
w-touch、mkdir、rm
x-cd

linux的文件类型:
-rw-r--r--

 ↓

第一个横杆代表普通文件,如果第一个是d代表目录文件,第一个是i代表软链接文件

123456
⇞⇞móōōō♂

⇞⇞móōōō♂

期待着未来的自己感谢现在的自己

29 文章
13 分类
42 标签
友情链接
hluglk
© 2021 IT蘑菇  闽ICP备17005404号-1
Typecho
主题 - NexT.Pisces