美文网首页
《Android第一行代码》first reading 一

《Android第一行代码》first reading 一

作者: 威宸 | 来源:发表于2017-01-03 17:51 被阅读0次

    站在巨人的肩上

    Android系统架构

    见图1:

    了解.jpg
    图片来源
    在这里只对Android系统架构进行初步了解,后续研究则需要找时间了。。。。

    架构四层:

    • Linux内核层:为硬件提供底层驱动
    • 系统运行库层:提供主要的特性支持、Android运行时库
    • 应用框架层:构建应用程序时所使用的各种API
    • 应用层:这就是你手机上的各种应用的所在地了

    Android项目结构

    1. 项目结构粗略

    先上图2.1.1:

    外层项目结构.png
    在此我只记录我自己认为需要记录的,如希望更详细的内容请购买郭大的书或自己进行研究。(00~ 不要认为我在推销)
    app 项目的主要内容,开发基本都在这里
    gitignore 用来将指定的目录或文件排除在版本控制之外
    build.gradle 项目全局的gradle构建脚本
    settings.gradle 指定项目中所有引入的模块(拓展项目时可用)

    图2.1.2:


    app项目结构.png
    libs 第三方jar包
    java 放置所有JAVA代码
    res 放置资源
    AndroidManifest.xml 整个Android项目的配置文件
    build.gradle app模块的构建脚本
    proguard-rule.pro 指定代码混淆规则

    2. 项目结构部分详解

    res详解

    图2.2.1:

    res结构.png

    drawable 放图片
    mipmap 放图标
    values 放字符串、样式、颜色等配置
    layout 放布局文件
    -hdpi、-mdpi、-xhdpi、-xxxhdpi 为你的图片资源提供不同分辨率的版本(最好为drawable自己定义-hdpi等文件)
    引用:

    • java中 R.XX.XX
    • xml中 @XX/XX

    build.gradle详解

    - build(project)
    buildscript {
        repositories {
            jcenter()//代码托管仓库
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.2.+'//classpath声明了一个Gradle插件
        }
    }allprojects {
        repositories {
            jcenter()//代码托管仓库
        }
    }
    
    - build(app)
    //com.android.application表示这是一个应用模块
    //com.android.library表示这是一个库模块
    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 24//指定项目的编译版本(Android7.0 SDK)
        buildToolsVersion "24.0.2"//项目构建工具
        defaultConfig {
            applicationId "XX.XX.XX"//项目包名
            minSdkVersion 15//项目最低兼容的android系统版本
            targetSdkVersion 24
            versionCode 1//项目版本号
            versionName "1.0"//版本名
        }
        buildTypes {//buildTypes包用于指定生成安装文件的相关配置
            release {//用于指定正式文件相关配置
                minifyEnabled false//指定是否对代码进行混淆
                proguardFiles getDefaultProguardFile('proguard android.txt'), 'proguard-rules.pro'
            }
        }
    }
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])//本地依赖声明
        compile 'com.android.support:appcompat-v7:24.2.1'//远程依赖声明
         testCompile 'junit:junit:4.12'
    }
    

    Log日志工具

    刚从web接触android,确实有些不习惯。比如这里的日志工具,当然还有部分原因估计是我的web也很菜。(00~)
    在学校里,我使用的是eclipse,日志输出习惯使用syso。现在想来这个方法真不算强大。在Android中显然Log是比system强的。

    • Log.v() 对应级别verbose
    • Log.d() 对应级别debug
    • Log.i() 对应级别info
    • Log.w() 对应级别warn
    • Log.e() 对应级别error

    当然在逛简书时,我还发现了一个让我感兴趣的日志工具kotlin。
    记录下发现的文章
    日后抽时间进行研究

    当然郭大的书中还有部分十分有用的小技巧,在这我就不赘述了。
    日后我会单独将这些小技巧拎出来记录。

    这里仅仅是我记录的部分笔记,以备回顾记忆
    如有侵权请联系我,我将进行修改和删除

    相关文章

      网友评论

          本文标题:《Android第一行代码》first reading 一

          本文链接:https://www.haomeiwen.com/subject/cqhnvttx.html