zoukankan      html  css  js  c++  java
  • [android]android项目的目录结构

    /**************2016年4月23更新*********************/

    相关技术:

    知乎:用eclipse做Android开发,新建工程时应如何选择Android的版本?

    肥肥鱼:

    Mini Required SDK:你的 App 所支持的最小 SDK 版本;

    Target SDK:你的 App 所针对的目标 SDK 版本,这个一般是主流版本,因为编译系统会针对该版本进行优化;

    Compile SDK:用于编译的 SDK 版本。一般会使用跟 Target SDK 相同的配置。

    知乎:AndroidStudio不同Sdk Version什么意思?

    target sdk version------build tools version-------compile sdk version

    这3个不同的version分别什么意思?求教

    从你的解释中,我是不是可以这么说,为了做到对API4.0系统的兼容,我只关注或者说主要关注minSdkVersion就可以了。buildToolsVersion跟compiledSdkVersion越新越好

    张鹏:

    build tools version

    Build Tools,顾名思义,编译用的工具。这个包含很多工具,比较重要的有:

    aapt:生成R文件,unsigned Apk;

    dx:将java字节码转成Dalvik 的字节码;

    zipalign :对apk做一些优化

    compile sdk version

    你目前的项目会用这个版本的sdk编译,新的sdk会加入新的特性,会有一些优化。你写的程序里调用的Android的方法就是从这里来的。

    target sdk version

    这个我也不是很清楚,,一般我都是写最高的版本号。。

    赠送Support Library Version:

    新版本的sdk中会有一些新的方法,但是旧的Android版本中并不存在这些方法。为了能让旧版本Android中也能使用一些新的特性,就可以使用一个额外的lib放到程序里面,这样旧版本也能这种办法来实现新特性了。例如,在2.3上使用ActionBar,Fragment等。

    祝传鹏:

    comiledSdkVersion对应的是你app编译的版本号。默认对应的是你SDK中的最新版本。(至少是android4.1或者更高,如果你没有4.1或者更高的版本,你应该用SDK Manager安装一个)。你仍然可以使你的app支持更老的版本,但是设置compiledSdkVersion为最新版本会让你能够启用一些新特性,并且让你的app在最新的设备上得到优化。

    minSdkVersion是你app支持的最早的版本。

    个人意见。2014年之后新的app,支持到4.0就可以了。除非像淘宝,支付宝微信那样的巨型app。否则上古的android版本可以抛弃了。即便是微信,新版本也不支持2.3了

    targetSdkVersion指出了你的app已经测试过的最高android版本。

    build tools version,单纯是指的android SDK中安装的buildTool的版本号。假如这个设置错误,你的AS会报错。提示你找不到对应版本号的编译工具。一般网上下载的project会有这样的问题。需要重新设置。

    知乎:Android是如何使用AndroidManifest.xml的?

    就好比broadcast,不需要启动程序就能接受广播,依靠的就是AndroidManifest.xml中的intent-filter,想问下,AndroidManifest.xml文件是在程序安装的时候就写进了系统的某个配置文件中,还是每次开机读取一次所有应用的AndroidManifest.xml文件?

    sznj

    Android正是每次开机(或者APK安装等调用packagemanager的操作)的时候会去读取/解析manifest文件,读取里面的version、permission、intent 等信息。

    发现题主是几年前提出的这个问题,所以又去确认了一下 Android 的早期版本(android-1.6_r1.5),处理方法是一样的。

    /********************************************************************/

    1. HelloWorld项目

    Application Name : 应用名称,展示在应用市场和设置中应用列表里面

    Project Name : 项目名称,只是在eclipse里使用

    Package Name : 包名称,必须独一无二

     

    Minimum Required SDK : 要求的最低版本的android系统

    Target SDK : 兼容的最高版本的android系统

    Compile With : 使用某版本SDK编译,一般是最高版本

    Theme : 主题样式

    2. 目录结构

     

    asset : 资产目录,一些文件会被打包到apk里面

    bin : 编译后的文件目录,可以删除

    gen : 自动生成的目录,有R.java

    Android6.0 : android的sdk,android.jar

    libs : 第三方库,例如:v4包 因为4.0以上添加了很多新的api在2.0上没有所以要用这个jar包

    res : 资源目录

    Drawable-hdpi drawable图片资源 h hign 高分辨率

    Drawable-ldpi l low 低分辨率

    Drawable-mdpi m middle 中分辨率

    Drawable-xhdpi xh 大分辨率

    Drawable-xxhdpi xxh 超大分辨率

    layout 布局文件目录

    project.properties : 项目特性,里面是指定的sdk版本编译,

    AndroidManifest.xml : 清单文件

    <?xml version="1.0" encoding="utf-8"?>
    <!-- [包名,一个手机里面唯一的包名] -->
    <!-- [应用的版本信息] -->
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.helloworld"
        android:versionCode="1"
        android:versionName="1.0" >
        <!-- [支持的最低的android系统版本和最高的android系统版本] -->
        <uses-sdk
            android:minSdkVersion="14"
            android:targetSdkVersion="23" />
        <!-- [icon图标,应用名称] -->
        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" >
            <!-- [activity名称和显示名称] -->
            <activity
                android:name=".MainActivity"
                android:label="@string/app_name" >
                <!-- [意图过滤器,入口和启动] -->
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>

    注意: 如果遇到eclipse崩溃了,又可能是模拟器服务端挂掉了,杀掉重启就好,如果遇到sdk编译错误可以使用 项目右键android tools -> fix project properties

  • 相关阅读:
    自定义可下拉刷新列表
    在listview里面的checkbox被选中或取消
    [转]Android中音乐文件的信息详解【安卓源码解析二】
    service 和broadcastreceiver的简略小结
    闹铃
    hdu 2112赤裸裸的最短路
    hdu 2177错题,很水的测试数据
    hdu 2184模拟
    hdu1150最小点集覆盖
    hdu 3746KMP的应用
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5204285.html
Copyright © 2011-2022 走看看