android学习day1

1.android系统框架

android大致可分为四层架构:linux内核层,系统运行库层,应用框架层和应用层

1.1 linux内核层

为android设备的各种硬件提供底层驱动,如显示驱动,音频驱动,wifi驱动,电源管理等。

1.2 系统运行库层

通过一些c/c++库为android系统提供了主要的特性支持,如SQLite库提供数据库支持,OpenGL|ES库提供3D绘图支持,Webkit提供浏览器内核的支持。

这一层还有android运行时库,他主要提供了一些核心库,允许开发者使用java语言来编写Android应用。另外还包含了Dakvik虚拟机(5.0系统后改为ART运行环境),是的每个android应用都能运行在独立的进程中。

1.3应用框架层

本层主要提供各种API,开发者通过这些API来构建自己的应用程序。

1.4应用层

所有的应用程序都属于这一层。

2android特色

2.1四大组件:

android系统四大组件为Activity,Service,BroadcastReceiver和ContentProvider。activity是所有android应用程序的门面,看到的东西都在activity中。service在后台默默运行,即使退出应用也可以继续运行。broadcastreceiver允许接收来自各处的广播消息。contentprovider为应用程序提供数据共享。

2.2丰富的系统控件:

方便我们轻松编写漂亮的界面。

2.3SQLite数据库:

系统自带的轻量级,运算极快的嵌入式关系型数据库,支持标准的SQL语法,通过封装好的API进行操作

2.4强大的多媒体:

如音乐,拍照,视频,录音等,都可以通过程序代码控制。

  2.5地理位置定位:

    gps

3.创建第一个项目

1.android视图下

app目录下:

manifests:包含xml文件,是app运行的配置文件

java:第一个包存放当前模块的java源码,后面两个包存放测试用的java代码

res:存放当前模块的资源文件,标在mipmap目录,图片在drawable目录,布局在layout目录,字符串在values目录。

Gradle Scripts目录下:

build.gradle:描述App工程的编译规则

proguard-rules.pro:用于指定项目代码的混淆规则,打包成安装包时不希望被破解

gradle.properties:用于配置编译工程的命令行参数一般不用改动

settings.gradle:配置了需要编译哪些模块,初始内容为include':app'表示只编译app模块

local.properties:项目的本地配置文件自动生成

2.project视图下

.gradle和.idea:自动生成的文件

app:项目中所有代码资源都在里面

gradle:包含gradle wrapper的配置文件

.gitignore:将指定的文件或目录排除在版本控制之外

build.gradle:项目全局的gradle构建脚本

gradle.properties:全局的gradle配置文件

gradlew和gradlew.bat:在命令行界面执行gradle命令,gradlew.bat只用于windows

local.properties:指定本机中的android sdk路径

settings.gradle:指定项目中所有引入的模块

app目录下

build:编译自动生成的文件

src中:

androidTest:用来编写测试用例

main中:

java:放置java代码

res:存放图片布局字符串等资源,图标在mipmap目录,图片在drawable目录,布局在layout目录,字符串在values目录

test:用来编写Unit Test测试用例

.gitignore:将app中指定目录或文件排除在版本控制之外,与外层类似

build.gradle:app模块的gradle构建脚本

proguard-rules.pro:用于指定项目代码的混淆规则,打包成安装包时不希望被破解

4.app中build.gradle分析

plugins {
    alias(libs.plugins.android.application)
}//模块

android {
    namespace 'com.example.zcc'
    compileSdk 34//指定项目编译的版本

    defaultConfig {
        applicationId "com.example.zcc"//每个应用的唯一标识符
        minSdk 29//最低兼容的android版本
        targetSdk 34//在目标版本上已经做过测试,系统会给你的应用程序启用新的功能
        versionCode 1//指定项目的版本号
        versionName "1.0"//指定项目的版本名

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"//用于当前项目启动JUnit测试
    }

    buildTypes {
        release {
            minifyEnabled false//指定是否对项目代码进行混淆,
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'//指定混淆时使用的规则文件
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    //指定依赖
    implementation libs.appcompat
    implementation libs.material
    implementation libs.activity
    implementation libs.constraintlayout
    testImplementation libs.junit
    androidTestImplementation libs.ext.junit
    androidTestImplementation libs.espresso.core
}

buildTypes闭包用于生成安装文件的相关配置通常会有两个子闭包:debug、release

  debug:用于指定测试版安装文件的配置,可以忽略不写

  release:用于指定正式版安装文件额的配置

5.清单文件AndroidManifest.xml

android:allowBackup:是否允许备份

android:icon:指定app在手机屏幕上显示的图标

android:label:指定app在手机屏幕上显示的名称

android:roundIcon:指定app的圆角图标

android:supportsRtl:是否支持阿拉伯语/波斯语这种从右往左的文字顺序 android:theme:指定app风格 android:dataExtractionRules:指定应用备份时的规则 android:fullBackupContent:定义了应用的全备份内容 tools:targetApi="31"

6.日志工具的使用

日志工具Log

v、d、i、w、e

Log.d("MainActivity","onCreate")第一个参数是tag一般传入当前的类名就好主要用于对打印信息的过滤;第二个参数是msg即想打印的内容

补充:

1:引用res/values/strings.xml:

 

<resources><string name="app_name">hello</string></resources>

有两种方法引用res目录下的资源:

1.在代码中通过R.string.app_name可以获得该字符串的引用

2.在xml中通过@string/app_name可以获得该字符串的引用

2.2008年,HTC发布第一台android智能机

  • 21
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值