Android 初识 Helloworld 详解

忘不了的R

忘不了的R

2016-02-19 09:02

今天图老师小编要跟大家分享Android 初识 Helloworld 详解,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

HelloWorld的目录结构有:

Image(3)

src:存放应用程序的逻辑代码,这里面的代码是人工写的
gen:存放资源代码,这里面的代码是自动生成的
assets:存放mp3等视频资源
bin:生成的可执行的二进制文件目录
libs:引用到的库,这里和bin/dexedLibs里面的目录是一致的
res:资源文件。往这个目录添加资源的时候,会被gen/R.java自动记录,自动那个记录到R.java中去。
AndroidManifest.xml:项目的总配置项,记录应用中使用到各种全局的配置
ic_launcher-web.png:这个是为了google Play市场使用展示的图标,它需要的是512×512的高分辨率的图标。
proguard-project.txt
project.properties

这两个文件是为了保护Android项目而做的代码混淆使用的。官方文档在:http://developer.android.com/tools/help/proguard.html

下面一个一个看:
src
存放用户代码的文件夹,里面至少会有一个Activity。Activity的概念就是界面,相当于C#中的Windows Form。

Image(4)

看到至少包含了一个onCreate函数,是在渲染界面的时候调用的,这里使用R.layout.activity_main来渲染,这个就对应于gen/R中的

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

Image(5)

activity_main等号后面的是资源描述符。

这里正好可以看一下R这个类

gen/R.java

R中的每个类都对应res中的一个资源,

比如layout对应res/layout

drawable对应res/drawable-XXdpi

所以上文中的R.layout.activity_main对应的实际是res/layout/activity_main.xml。这样就把界面和逻辑分开了,这就是典型的mvc模式分层的概念。

gen/BuildConfig.java

里面存放着全局的DEBUG开关,你可以使用这个开关做日志和调试的操作。

但是如何修改这个呢?gen下面的文件不应该手动修改,具体可以参照:http://drovik.com/html/5701262218.html

bin

这个目录是生成文件的目录,可以看到,它把apk包,AndroidMainifest.xml都生成一份放在文件夹内。

bin/class.dex

java编译后生成的java字节码文件,相当于java的.class文件。但是由于Android使用的dalvik虚拟机和标准的java虚拟机是不兼容的,所以dex和class是不一样的。

现在网络上就有一些工具能通过dex来进行反编译出Android代码。比如这个:http://code.google.com/p/android-apkdb/

bin/HelloWorld.apk

这个就是应用的安装包了(application package file)。一个apk文件内包含被编译的代码文件(.dex文件),文件资源(res),assets,证书(certificates),和清单文件(manifest file)。APK是基于zip文件格式的。

bin/resources.ap_

这个是所有资源文件的集合,实际上是zip格式。我们可以将它的后缀名修改,解压可以看到里面的结构是有mainfest,res等。

bin/dexedLibs

对应libs中引用的jar包

res

这个目录就是所有的资源文件了

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

Image(6)

res/drawable-Xdpi:这里存放的是对不同分辨率的资源

res/layout:存放布局资源,src中的onCreate方法就加载了这里面的activity_main资源

res/menu:手机的menu菜单

res/values:用来存放一些变量,参数等。

res/values-XX:对于不同设备或者不同的安卓版本会有不同的参数设置

展开更多 50%)
分享

猜你喜欢

Android 初识 Helloworld 详解

编程语言 网络编程
Android 初识 Helloworld 详解

Android之PreferenceActivity应用详解

编程语言 网络编程
Android之PreferenceActivity应用详解

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Android笔记之:onConfigurationChanged详解

编程语言 网络编程
Android笔记之:onConfigurationChanged详解

初识FreeBSD

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
初识FreeBSD

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Android NavigationController 右滑手势详解

编程语言 网络编程
Android NavigationController 右滑手势详解

android 屏幕亮度调节方法详解

编程语言 网络编程
android 屏幕亮度调节方法详解

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

AJAX在不同浏览器中XMLHttpRequest对象的生成示例

AJAX在不同浏览器中XMLHttpRequest对象的生成示例

SQL 合并多行记录的方法总汇

SQL 合并多行记录的方法总汇
下拉加载更多内容 ↓