关键词不能为空

当前您在: 主页 > 英语 >

Android工程各文件夹结构的含义及全代码使用与全解

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-03-03 12:47
tags:

-

2021年3月3日发(作者:脆弱)




Android



工程各文件夹结构的 含义及全代码使用


与全解




Android


这些东西一开始听迷惑的,


不知 道什么东西该放在上面地方,


把网上的资源整合一下,


放在这里 。




1.


总述




我们建立一个


android


工程,其 结构如下:







1.1



src


文件夹




顾名思义(


src, source code


)该文件夹是放项目的源代码的。



A. ty


类:




Activity


类关注 创建窗口与交互,


它使用方法


setContentView( View)


将自


己的


UI


放到里面。



重要的方法:


onCreate(Bundle)


:初始化活动(


Activ ity


)。




1


)通过调用


setContentView(int)


方法加载布局资源(


layout


res ource


)从而实现对


UI


的定义;




2


)另一 方面,可以用


findViewById(int)



UI


中检索到需要编程交互的


小部件(


widgets


)。



主要的思想:


setContentView


指定由哪个文件指 定布局(



),可


以将这个界面显示出来 ,


然后我们进行相关操作,


我们的操作会被包装成为一个


意图(


Intent


),然后这个意图对应有 相关的


activity


进行处理。




B.



类:



< /p>


从字符串值映射各种可打包的(


Parcelable

< p>
)类型(


Bundle


单词就是捆绑的意思,所有 这个


类很好理解和记忆)。如该类提供了公有方法——


publ ic boolean containKey(String key)


< p>
如果给定的


key


包含在


Bundle


的映射中返回


true


, 否则返回


false


。该类实现了


Pa rceable



Cloneable


接口,所以它具有这两者的特性。




1.2



gen


文件夹



该文件夹下面有个



文件,



是在建立项目时自动生成的,这个文件


是只读模式的,不能更改。



文件中定义了一个类——

< p>
R



R


类中包含很多


静态类,


且静态类的名字都与


res


中的一个名字对应,



R

类定义该项目所有资


源的索引。看我们的


HelloWor ld


项目是不是如此,如下图:






2




对应


res


优点 :


(1)


通过



我们可以很快地查找我们需要的资源,



(2)


另外编绎器也会检查



列表中的资 源是否被使用到,没有


被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用 的空间。





1.3



Android 2.2


文件夹



该文件夹下包含



文件,这是一个


Java

< br>归档文件,其中包含构建应


用程序所需的所有的


Andr oid SDK


库(如


Views



Controls


)和


APIs


。通过



将自己的应用程序绑定到


Android


SDK



Android

< p>
Emulator


,这允


许你使用所有

< p>
Android


的库和包,


且使你的应用程序在适 当的环境中调试。


例如,


源文件中的:



import ty;


import

< br>这里两行代码就是从



导入包。




1.4 assets


文件夹与< /p>


res


文件夹






1



assets


文件夹资源的访问



assets


文件夹里面的文件都是保持原始的文件格式,需 要用


AssetManager



字节 流的形式读取文件。



1.

先在


Activity


里面调用


g etAssets()


来获取


AssetManager


引用。



2.


再用


AssetManager


open(String fileName, int accessMode)


方法


则指定读取的文件以及访问模式就能得到输入流


Input Stream




3.


然后就是用已经


open


file



inputStream


读取文件, 读取完成后记



inputStream.

close()




4.


调用


AssetManager.


close()


关闭


AssetManager




需要注意的是,


来自


Resources



Assets


中的文件只可以读取而不能进行写的


操作



以下为从


Raw


文件中读取:



代码




public String getFromRaw(){


try {


InputStreamReader inputReader = new


InputStreamReader( getResources().openRawResource(1));


BufferedReader bufReader = new


BufferedReader(inputReader);


String line=


String Result=


while((line = ne()) != null)


Result += line;


return Result;


} catch (Exception e) {


tackTrace();


}


}


以下为直接从


assets


读取



代码



public String getFromAssets(String fileName){


try {


InputStreamReader inputReader = new


InputStreamReader( getResources().getAssets().open(fileName) );


BufferedReader bufReader = new


BufferedReader(inputReader);


String line=


String Result=


while((line = ne()) != null)


Result += line;


return Result;


} catch (Exception e) {


tackTrace();


}


}


当然如果你要得到内存流的话也可以直接返回内存流!






2



res


文件夹里面主要是放资源文件 。




下面是

< p>
res


文件夹里面的多个文件夹的各自介绍:



目录


Directory



资源类型


Resource Types



XML


文件,它们被编译 进逐帧动画(


frame


by


frame


animation


)< /p>


res/anim/


或补间动画


(


tweened animation


)


对象



.png



.



.jpg


文件,它们被编译进以下的


Draw able


资源


子类型中:


< p>
要获得这种类型的一个资源,可以使用


wable(


id


)


位图文件



9-patches


(可变尺寸的位图)



为了获取资源类型,使用


res/drawable/


ources().getDrawable(d)


注意:< /p>


放在这里的图像资源可能会被


aapt


工 具自动地进行无损


压缩优化。


比如,


一 个真彩色但并不需要


256


色的


PNG


可能会被


转换为一个带调色板的


8



PNG


。这使得同等质量的图片占用更< /p>


少的资源。


所以我们得意识到这些放在该目录下的二进制图像在< /p>


生成时可能会发生变化。


如果你想读取一个图像位流并转换成一< /p>


个位图


(bitmap)


,请把图像文件 放在


res/raw/


目录下,这样可


以避免被自动优化。



被编译为屏幕布局

(


或屏幕的一部分


)


< p>
XML


文件。


参见布局声明


res/layout/


(Declaring Layout)



可以被编译成很多种类型的资源的

< p>
XML


文件。



注意


:



不像 其他的


res/


文件夹,它可以保存任意数量的文件,


这些文件保存了要创建资源的描述,而不是资源本身。


XML

< p>
元素


类型控制这些资源应该放在


R


类的什么地方。



尽管这个文件夹里的文件可以任意命 名,


不过下面使一些比较典


型的文件(文件命名的惯例是将元素 类型包含在该名称之中):






定义数组






定义


color drawable



颜色的字符串值


res/values/


(color string values)


。使用


wable()



or()

分别获得这些资源。





定义


尺寸值


(dimension v alue)


。使用


ension()


获 得这些资源。





定义


字符串


(string)

< br>值。使用


ing()


或者


t()


获取这些资


源。


getText()< /p>


会保留在


UI


字符串上应用的丰富的文本 样式。






定义


样式< /p>


(style)


对象。



任意的


XML


文件,在运行时可以通过调用

< p>
()


res/xml/


读取。



res/raw/



直接复制到设备中的任意文件。


它 们无需编译,


添加到你的应用


程序编译产生的压缩文件中。要使 用这些资源,可以调用


wResource()


,参数是资源的


ID


,即


.


s omefilename




2.R


文件补充




是自动生成的,我们平常引用的资源主要引用这个类的变量。





注意:


R


类是自动生成的,并且它不能被手动修改。当资源发生变动时,


它会自动修改。




3.


在代码中使用资源



下面是一个引用资源的语法:



ce_ce_name




ce_ce_name



其中


resource_type



R


的子类,保存资源的一个特定类型 。


resource_name



在< /p>


XML


文件定义的资源的


name


属性


,或者有其他文件类型为资源定义的文件名


(不包含扩展名,这指的是


drawable


文件夹里面的< /p>



类似的文件,


name=icon


)。



Android


包含了很多标准资源,如屏幕样式和按钮背景。要在代


码中引用这些资源,你必须使用


android


进行限定,如


_bac kground





下面是官方给出的一些在代码中使用已编译资源的正确和错误用法的例子:



1.



// Load a background for the current screen from a drawable resou


rce.


2.



dow().setBackgroundDrawableResource(_back< /p>


ground_image);


3.




4.



//


WRONG


Sending a string resource reference into a


5.



// method that expects a string.


6.



dow().setTitle(_title);


7.




8.



//


RIGHT


Need to get the title from the Resources wrapper.


9.



dow().setTitle(t(_title))


;


10.


11.// Load a custom layout for the current screen.


tentView(_screen);


13.


14.// Set a slide in animation for a ViewFlipper object.


nimation(imation(this,


16. pace_in));


17.


18.// Set the text on a TextView object.


ew msgTextView = (TextView)findViewByID();


t(_message);



查了


SDK


Doc

< br>,


才明白为什么


le


要先


t



原来


setTi tle


的参数是


CharSequence

< br>,


t(int)


返回的是


Cha rSequence


;而其他


setText

< br>的参数有的是


CharSequence


,有的是


int


(这


就是


R esources


变量值)。




同时官方还给了两个使用系统资源的例子:



1.



//


在屏幕上显示标准应用程序的图标



2.



public class MyActivity extends Activity {


3.



public void onStart() {


4.



requestScreenFeatures(FEATURE_BADGE_IMAGE);


5.



t();


6.



setBadgeResource(_def_app_icon);


7.



}


8.



}


9.




1 0.//


应用系统定义的标准



绿色背景



视觉处理



class MyActivity extends Activity


12. public void onStart() {


13. t();


14. setTheme(_Black);


15. }


16.}



4. xml


文件内引用资源



1)


引用自定义的资源



android:text=

-


-


-


-


-


-


-


-



本文更新与2021-03-03 12:47,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/700040.html

Android工程各文件夹结构的含义及全代码使用与全解的相关文章

Android工程各文件夹结构的含义及全代码使用与全解随机文章