Android初识Helloworld
在Eclipse+ADT中创建HelloWorld非常简单,直接按照导航下一步就可以了。本文重点不在如何创建,而在理解HelloWorld项目的文件。
HelloWorld的目录结构有:

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。

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

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
这个目录就是所有的资源文件了

res/drawable-Xdpi:这里存放的是对不同分辨率的资源
res/layout:存放布局资源,src中的onCreate方法就加载了这里面的activity_main资源
res/menu:手机的menu菜单
res/values:用来存放一些变量,参数等。
res/values-XX:对于不同设备或者不同的安卓版本会有不同的参数设置
参考文章
http://blog.chukong-inc.com/index.php/2012/06/05/android%E4%BB%A3%E7%A0%81%E6%B7%B7%E6%B7%86/
http://drovik.com/html/5701262218.html
http://www.cnblogs.com/skynet/archive/2010/04/13/1711479.html
==================================
作者:轩脉刃(yjf512)
出处:(http://www.cnblogs.com/yjf512/)
版权声明:本文的版权归作者与博客园共有。欢迎转载阅读,转载时须注明本文的详细链接。
Android初识Helloworld的更多相关文章
- android的helloworld工程目录学习
android的helloworld工程目录学习 Android工程的主要目录有src.gen.Android X.X.bin.res等文件夹. 1. Src文件夹 Src文件夹包含java源 ...
- 基于eclipse创建android的helloworld工程
基于eclipse创建android的helloworld工程 之前用过Android studio感觉很慢,决定采用eclipse来学习Android开发.下面来看是怎么创建的. 选择File--- ...
- Android下HelloWorld项目的R.java文件介绍
R.java文件介绍 HelloWorld工程中的R.java文件 package com.android.hellworld; public final class R { public s ...
- jni cocos2d-x移植到android:helloworld
前面搭建好了android开发环境 jni开发环境,那么就来用一用目前火热的cocos2d的游戏引擎吧 所需资料: cocos2d :下载地址 http://www.oschina.net/p/co ...
- Android Studio HelloWorld
开发第一应用 可以开发属于自己的应用,是否有点小激动?好吧!让我们开始,首先点击Start a new Android Studio Project创建工程: 接下来需要输入应用名称(第一个字母要大写 ...
- android jni——helloworld
看了网上好多牛人写的学习系列都是用HelloWorld作为开始,我们这里也用HelloWorld来开始我们的学习,首先我们来介绍下JNI吧. JNI作为java代码和C/C++的桥梁而存在的,为了让j ...
- Android—初识AsyncTask
AsyncTask是用来处理一些后台的比较耗时的任务,给用户带来良好的体验.AsyncTask扩展Thread,增强了与主线程的交互能力. 首先介绍AsyncTask中定义的以下几个方法: onPre ...
- Android jni helloworld
新建Android项目,设置布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android& ...
- Android JNI HelloWorld实现
创建一个JNIDemo的Android工程 在项目下创建一个文件夹jni.(注意必须是jni目录) 在jni目录下创建两个文件:Android.mk 和 first_jni.c(.c文件的名字可以任意 ...
随机推荐
- base_expr +: width_expr
在Verilog-1995中,可以选择向量的任一位输出,也可以选择向量的连续几位输出,不过此时连续几位的始 末数值的index需要是常量.而在Verilog-2001中,可以用变量作为index,进行 ...
- Eclipse sysout 和 fore 不起作用
Content Assist ↑ 这是主角,可以快速生成语句. sysout 快捷键之后生成了 System.out.println(); fore 快捷键之后生成了 for(String arg : ...
- C#系列之{流和序列化}
不论何种类型的文件都可以表示为一个字节数组.(Byte[]) 一.文件复制 (示例) 首先建立一个类似管道的东西将文件和内存中的程序连接,并将文件按字节发送.为了保存接收到的文件字节,需要创建一个字节 ...
- GetWindowRect
示例代码: CRect rect; GetDlgItem(IDC_STATIC_VIEW)->GetWindowRect(&rect); int width=rect.Width(); ...
- java基础-day21
第10天 IO流 今日内容介绍 u 标准输入流 & 转换流 & 打印流 u 对象操作流 u Properties集合 第1章 标准输入流 & 转换流 & 打 ...
- MySQL性能优化之延迟关联
[背景] 某业务数据库load 报警异常,cpu usr 达到30-40 ,居高不下.使用工具查看数据库正在执行的sql ,排在前面的大部分是: SELECT id, cu_id, name, in ...
- Codeforces Round #265 (Div. 2) C. No to Palindromes! 构造不含回文子串的串
http://codeforces.com/contest/465/problem/C 给定n和m,以及一个字符串s,s不存在长度大于2的回文子串,现在要求输出一个字典比s大的字符串,且串中字母在一定 ...
- Nvu
在Jennifer Niederst Robbins的书<Learning Web design>(密码:v9i1)推荐软件Nvu 界面: Nvu tips:
- eclipse 离线安装插件报cannot perform operation.Computing alternate solutions...解决办法
当不能连接外网,离线安装SVN插件时,可能会发现以下问题:eclipse长时间停留在下图所示状态,提示“cannot perform operation.Computing alternate sol ...
- 一次典型的TFS故障处理:域控失联
问题描述 突然收到客户报告,开发人员登录TFS系统时,出现登录异常现象.即使输入了正确的账户和密码,TFS系统任然提示重新登录的页面,导致用户无法打开TFS系统. 即使登录成功,在修改代码或者修改工作 ...