Android知识Android开发Android技术知识

Android小知识

2017-08-24  本文已影响0人  Ansaxnsy

目录:

Android系统架构

Android应用开发特色

Project 介绍

项目运行过程

剖析 res 中的资源

如何使用这些资源?

详解 build.gradle  文件

Android 的日志工具  Log

Toast

Menu

Intent

活动的生命周期



Android系统架构

大致四层:Linux内核层、系统运行库存、应用框架层和应用层

Android应用开发特色

1.四大组件

活动    Activity

服务    Service

广播接收器    Broadcast Receiver

内容提供器    Content Provider

2.系统控件

3.SQLite 数据库

轻量级、运算速度快的嵌入式关系型数据库

4.多媒体

音乐、视频、录音、拍照、闹钟

5.定位

Project

1.  .gradle 和 .idea

AS自动生成的一些文件,暂不管

2.app

代码,资源都在这

3.build

编译时自动生成的文件

4.gradle

gradle wrapper 的配置文件

5.gitignore

用来将指定的目录或文件排版在版本控制之外的 (这两天没有在意)

6.build.gradle

项目全局的 gradle 构建脚本,通常不需要改

7.gradle.properties

全局的 gradle 配置文件,这里配置的属性会影响项目中所有的 gradle 编译脚本

8.gradlew 和 gradlew .bat

用来在命令行界面中执行 gradle 命令的,其前者是在 Linux或Mac系统中使用,后者Windows

9.HelloWorld.iml

哦~~

10. local.properties

哦~~

11.settings.gradle

哦~

所以,前面的都是废话,重点  是    2.app

1.build

编译时自动生成的文件

2.libs

如果项目中使用第三方 jar 包,就需将它放在此下,放这会被自动添加到构建路径里去(这个有用到,我在导入百度地图的LBS  Ctrl v 了)

3.androidTest

编写 Android Test 测试用例的,可以对项目进行一些自动化测试。(这两天没用到)

4.java

所有Java代码的放置地,默认  MainActivity (核心啊)

5.res

项目所用所有图片(drawable)、布局(layout)、字符串(values)等资源都在此

(布局用到过,添加过 button  TextView)

6.AndroidManifest.xml

整个Android项目的配置文件,四大组件都在这注册,添加权限声明

(加过权限和key)   (注意  M a n i fest ,之前还以为写错了)

7.test

编写 Unit Test 测试用例的,对项目进行自动化测试的另一种方式

8. .gitignore

9.app.iml

Intellij IDEA 项目自动生成的文件,

10.build.gradle

app 模块的 gradle 构建脚本,此文件会指定很多项目构建相关的配置(因为权限试着改过这里的编译环境等,然无卵用)

11.proguard-rules.pro

(竟然是此意,遇到过问题博客说加个代码在此,并无卵)

项目运行过程

打开  AndroidManifest.xml 

Android 程序设计讲究逻辑和视图分离,所以在布局文件中编写界面,然后在活动中引入。

剖析 res 中的资源

res 目录下:

drawable开头的文件夹            图片

mipmap开头的文件集             图标

values                                     字符串、样式、颜色

layout                                      布局文件

为啥要那么多 mipmap  那

如何使用这些资源?

例如打开   res/values/strings.xml  


不造为啥复制不过来~~~

两个方法引用它:

1.  代码中  R.string.hello_world  可以获得该字符串的引用

2.在 XML 中  @string/hello_world  可以获得该字符串的引用

(其中string 可换,图片 drawable、图标  mipmap、布局  layout,以此类推)

例如:

详解 build.gradle  文件

不知所云

HelloWorld 项目中有两个  build.gradle

我当前的是  2.2.3

compileSdkVersion  26    编译版本    26对应  Android 8.0 系统的 SDK 编译

buildToolsVersion "26.0.1"    构建工具的版本 

minSdkVersion 15    最低兼容的 Android 系统版本   15对应  4.0 的系统

targetSdkVersion 26   

!!!!就是这个东西把我坑的,简直了!!!!!

buildTypes

dependencies 闭包

可以指定项目所有的依赖关系,通常有三种依赖方式:

1.本地依赖(compile fileTree)    对本地Jar 包或目录添加依赖关系

2.库依赖(compile project)    项目中的库模块添加依赖关系

3.远程依赖(compile)    jcenter库上的开源项目添加依赖关系

Android 的日志工具  Log

****************************************

想起前两天:

我:彬哥,我程序闪退

彬哥:看下log,搜fatal

我:……黑人问号脸

***************************************

Log  (android.util.Log),此类提供5个方法来打印日志:

在setContentView(R.layout.activity_main); 下添加如下语句:

Log.d("MainActivity","onCreate execute");

logcat 即可看到如下信息:

08-25 02:26:17.668 2547-2547/com.example.yanchengwei.helloworld D/MainActivity: onCreate execute

为何使用 Log 而不用 System.out?

日志打印不可控制、打印时间无法确定、不能继续添加过滤器、日志没有级别区分

Toast

Android 系统提供的一种提醒方式,在程序中可以使用它将一些短小的信息通知给用户,此信息一段时间后自动消失,并且不会占用屏幕空间

******大概代码*************************

Button button1 = (Button) findViewById(R.id.button_1);

button1.setOnClickListener(newView.OnClickListener(){

    @Override

    public voidonClick(View v){

        Toast.makeText(FirstActivity.this,"You clicked Button 1",

                Toast.LENGTH_SHORT).show();

    }

});

*********************************

findViewById()  获取到在布局文件中定义的元素,传入R.id.button_1 ,来得到按钮的实例

Menu(P38)

销毁一个活动:

按下Back,或者 finish()

Intent

可以在活动之间穿梭,分为显式和隐式

1.使用显式 Intent


在 FirstActivity 活动基础上打开 SecondActivity ,通过startActivity() 方法来执行 Intent。

效果:FirstActivity 界面点击  按钮,跳转到了  ActivityTest

2.使用隐式 Intent

合适的活动,简单理解   可以响应我们这个隐式 Intent 的活动

活动的生命周期

号称深入理解就可以写出流程的程序,合理管理应用资源方面发挥的游刃有余,你的应用程序将会拥有更好的用户体验~~~很叼的样子

返回栈


返回栈工作示意图

活动状态

每个活动在其生命周期最多可能会有4种状态。

1.运行状态:一个活动位于返回栈栈顶时,即运行状态。

2.暂停状态:当活动非在栈顶,但仍然可见时,即进入暂停状态。并不是每个活动都会占满整个屏幕的,比如对话框形式的活动只会占屏幕中间部分区域。处于此态仍完全是存活的,系统也不愿去回收这种活动(因为可见,回收的东西都会在用户体验方面有不好的影响),只有内存极低的情况下,系统才会去考虑回收这种活动。

3.停止状态:


4.销毁状态:活动从返回栈中移除后就变成了销毁状态。系统会最倾向于回收这种状态的活动,从而保证手机的内存充足。

活动的生存期

Activity 类中定义了 7 个回调方法,覆盖了活动生命周期的每个环节


活动的生命周期

活动的启动模式

四种:standard、singleTop、singleTest、singleInstance

1.standard

2.singleTop

3.singleTest

4.singleInstance

最特殊最复杂~不同于以上三个,指定为singleInstance模式的活动会启用一个新的返回栈来管理这个活动。

活动的最佳实践

以上,未完


写在最后:

简单总结下这两天的进度,如果按照产出来看的话,几乎无进度~

这周开始做Android的小Demo,有点操之过急,下载的Demo也运行不起来,一直在折腾关于Android 6.0之后的动态权限问题,然后,,GPS现在还没有正确的显示出来,这就很尴尬了~

至于收获,知道了发布流程,电脑的SHI1值及如何获取key,有了个大概的认识。

马上开始具体的点学习,一边学习小的知识点,一遍尝试继续做Demo。

【一首歌 】【信仰-张信哲】

前些天现场听得,再次点开这首歌竟然有了不一样的感觉~

爱是一种信仰,龙瞎也是,HelloWorld 大概也是吧~

上一篇下一篇

猜你喜欢

热点阅读