andriod项目结构样本

上传人:仙*** 文档编号:158842282 上传时间:2022-10-07 格式:DOC 页数:13 大小:114.50KB
返回 下载 相关 举报
andriod项目结构样本_第1页
第1页 / 共13页
andriod项目结构样本_第2页
第2页 / 共13页
andriod项目结构样本_第3页
第3页 / 共13页
点击查看更多>>
资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。Android项目目录结构有了前面两章的基础, 现在我们再来打开上一章建立的HelloAndroid项目, 分析其项目目录结构, 对Android项目进一步的深入了解。首先启动Eclipse, 展开Package Explorer导航器中的HelloAndroid项目, 如图3-1所示。与一般的Java项目一样, src文件夹是项目的所有包及源文件( .java) , res文件夹中则包含了项目中的所有资源, 比如: 程序图标( drawable) 、 布局文件( layout) 、 常量( values) 等。下面来介绍其它Java项目中没有的的gen文件夹中的R.java文件和每个Android项目都必须有的AndroidManfest.xml文件。R.java是在建立项目时自动生成的, 这个文件是只读模式, 不能更改, R.java文件是定义该项目所有资源的索引文件。先来看看HelloAndroid项目的R.java文件, 如代码清单3-1所示。代码清单3-1 R.java1. packagecom.yarin.Android.HelloAndroid; 2. 3. publicfinalclassR 4. publicstaticfinalclassattr 5. 6. publicstaticfinalclassdrawable 7. publicstaticfinalinticon=0x7f0 0; 8. 9. publicstaticfinalclasslayout 10. publicstaticfinalintmain=0x7f030000; 11. 12. publicstaticfinalclassstring 13. publicstaticfinalintapp_name=0x7f040001; 14. publicstaticfinalinthello=0x7f040000; 15. 16. 能够看到这里定义了很多常量, 仔细一看就发现这些常量的名字都与res文件夹中的文件名相同, 这再次证明R.java文件中所存储的是该项目所有资源的索引。有了这个文件, 在程序中使用资源将变得更加方便, 能够很快地找到要使用的资源, 由于这个文件不能被手动编辑, 因此当我们在项目中加入了新的资源时, 只需要刷新一下该项目, R.java文件便自动生成了所有资源的索引。AndroidManfest.xml文件则包含了该项目中所使用的Activity、 Service、 Receiver, 我们先来打开HelloAndroid项目中的AndroidManfest.xml文件, 如代码清单3-2所示。代码清单3-2 AndroidManfest.xml1. 2. 6. 7. 9. 10. 11. 12. 13. 14. 15. 16. 代码清单3-2中intent-filters描述了Activity启动的位置和时间。每当一个Activity( 或者操作系统) 要执行一个操作时, 它将创立出一个Intent的对象,这个Intent对象能承载的信息可描述你想做什么, 你想处理什么数据, 数据的类型, 以及一些其它信息。而Android则会和每个Application所暴露的intent-filter的数据进行比较, 找到最合适Activity来处理调用者所指定的数据和操作。下面我们来仔细分析AndroidManfest.xml文件, 如表3-1所示。表3-1 AndroidManfest.xml分析manifest根节点, 描述了package中所有的内容xmlns:android包含命名空间的声明。xmlns:android=http:/schemas. 使得Android中各种标准属性能在文件中使用, 提供了大部分元素中的数据Package声明应用程序包application包含package中application级别组件声明的根节点。此元素也可包含application的一些全局和默认的属性, 如标签、 icon、 主题、 必要的权限, 等等。一个manifest能包含零个或一个此元素( 不能大余一个) android:icon应用程序图标android:label应用程序名字Activity用来与用户交互的主要工具。Activity是用户打开一个应用程序的初始页面, 大部分被使用到的其它页面也由不同的activity所实现, 并声明在另外的activity标记中。注意, 每一个activity必须有一个标记对应, 无论它给外部使用或是只用于自己的package中。如果一个activity没有对应的标记, 你将不能运行它。另外, 为了支持运行时查找Activity, 可包含一个或多个元素来描述activity所支持的操作android:name应用程序默认启动的activityintent-filter声明了指定的一组组件支持的Intent值, 从而形成了IntentFilter。除了能在此元素下指定不同类型的值, 属性也能放在这里来描述一个操作所需的唯一的标签、 icon和其它信息action组件支持的Intent actioncategory组件支持的Intent Category。这里指定了应用程序默认启动的activityuses-sdk该应用程序所使用的sdk版本相关下面我们看看资源文件中一些常量的定义, 如String.xml, 如代码清单3-3所示。代码清单3-3 String.xml1. 2. 3. HelloWorld,HelloAndroid!4. HelloAndroid5. 这个文件很简单, 就定义了两个字符串资源, 与R.java中对应的索引如代码清单3-4所示。代码清单3-4 R.java中的String类1. publicstaticfinalclassstring 2. publicstaticfinalintapp_name=0x7f040001; 3. publicstaticfinalinthello=0x7f040000; 4. 在程序中装载并使用这个字符串资源如代码清单3-5。代码清单3-5 String资源的使用1. Resourcesr=this.getContext().getResources(); 2. Stringappname=(String)r.getString(R.string.app_name); 3. Stringhello=(String)r.getString(R.string.hello);基本上能够定义出项目中所有使用的常量, 例如颜色。因此, 可根据需对资源常量进行定义。下面是定义了颜色的常量colors.xml, 如代码清单3-6所示。代码清单3-6 colors.xml1. 2. 3. #cccccc4. #637a475. #cc99006. #ac44447. 现在我们来分析HelloAndroid项目的布局文件( layout) , 首先我们打开res-layout-main.xml文件, 如代码清单3-7所示。代码清单3-7 main.xml1. 2. 7. 12. 代码清单3-7中, 有以下几个布局和参数。: 线性版面配置, 在这个标签中, 所有元件都是按由上到下的排队排成的。android:orientation: 表示这个介质的版面配置方式是从上到下垂直地排列其内部的视图。android:orientation: 表示这里是水平排列android:layout_width: 定义当前视图在屏幕上所占的宽度, fill_parent即填充整个屏幕。android:layout_height: 定义当前视图在屏幕上所占的高度, fill_parent即填充整个屏幕。wrap_content: 随着文字栏位的不同而改变这个视图的宽度或高度。layout_weight 用于给一个线性布局中的多个视图的重要度赋值。所有视图都有layout_weight 值, 默认为零, 即需要显示多大的视图就占据多大的屏幕空间。如果值大于零, 则将父视图中的可用空间分割, 分割大小具体取决于每一个视图的layout_weight 值和该值在当前屏幕布局的整体 layout_weight 值, 以及在其它视图屏幕布局的layout_weight 值中所占的比例。在这里, 布局中设置了一个TextView, 用来配置文本标签Widget, 其中设置的属性android:layout_width为整个屏幕的宽度, android:layout_height能够根据文字来改变高度, 而android:text则设置了这个TextView要显示的文字内容, 这里引用了string中的hello字符串, 即String.xml文件中的hello所代表的字符串资源。hello字符串的内容Hello World, HelloAndroid!这就是我们在HelloAndroid项目运行时看到的字符串。最后, 我们来分析HelloAndroid项目的主程序文件HelloAndroid.java, 如代码清单3-8所示。代码清单3-8 HelloAndroid.java1. packagecom.yarin.Android.HelloAndroid; 2. 3. importandroid.app.Activity; 4. importandroid.os.Bundle; 5. 6. publicclassHelloAndroidextendsActivity 7. 8. 9. publicvoidonCreate(BundlesavedInstanceState) 10. 11. super.onCreate(savedInstanceState); 12. /*设置Activity要显示的布局为(R.layout.main)*/ 13. setContentView(R.layout.main); 14. 15. 主程序HelloAndroid类继承自Activity类, 重写了void onCreate(Bundle savedInstanceState)方法。在onCreate方法中经过setContentView(R.layout.main)设置了Activity要显示的布局文件( layoutmain.xml) 。android里proguard.cfg文件有什么用? 这是代码混淆用的你能够搜索一下android 代码混淆, 看看大家是怎么配置这个文件的代码混淆是为了防止你的apk被反编译而代码全部暴露不过当前的代码混淆只是把命名修改了一下而已, 真正反编译时还是能够想办法还原出来的, 因此不能真正的混淆到这里, 是不是明白了为什么我们在创立项目时没有进行编码就能够直接运行程序呢? 当然, 这也是Android开发的特点, 这样能够很轻松地将代码和UI分开, 在国际化和程序维护方面有着巨大的作用。如果你的Android程序需要自适应国际化, 比如说多国语言等问题, 那么就能够定义不同语言的UI布局, 在程序装载时调用不同的布局。而且, 如果我们需要修改UI的一些问题, 就不必查看代码了, 直接更改这些布局文件即可, 是不是很方便? 当然, 这需要开发者在开发时使用这种MVC框架, 尽量减少使用硬编码。这里, 笔者个人建议使用这种框架。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!