Android

1.Google Android 给出的官方Android架构图就是大家都知道的四层,第一层是应用层(就是很多能够看得到的应用),第二层是应用框架层(为application提 供各种各样的支持),第三层是Library内库层 + Dalvik VM, 第四层是Linux kernel 层

2.自己理解的Android架构图-主要是把第一层和第二层合并成Android层,然后library c + dalvik vm 和 Linux kernel 是不会变的

3.从编程语言角度划分主要是,上层语言(Java语言 / Kotlin语言) 会去调用底层的API,JNI调用是可以实现Java和C/C++交互,互相调用


APP

一个应用有一个Application

一个应用有很多东西组成:通常情况下会有四大组件组成


Context 上下文环境

Context是环境,Activity是组件 所以会拥有环境,Service是组件 所以会拥有环境,ContextProvider是组件 所以会拥有环境,BroadcastReceiver是组件 所以会拥有环境 ....

环境的作用很大:可以直接操作 files / databases / share-pres 等等.....


Activity的父类是上下文环境,所以可以直接操作 files / databases / share-pres 等等.....

等等.........


Service的父类是上下文环境,所以可以直接操作 files / databases / share-pres 等等.....

等等.........


ContextProvider可以getContent();,所以可以操作 files / databases / share-pres 等等.....

Context context = getContext();

public class Test extends ContentProvider {

    @Override
public boolean onCreate() { Context context = getContext(); return false;
} }

等等.........


BroadcastReceiver 的 onReceive(Context context, ...)  所以可以操作 files / databases / share-pres 等等.....

public class Test extends BroadcastReceiver {

    @Override
public void onReceive(Context context, Intent intent) { }
}

等等.........

Android-Android/APP-理解的更多相关文章

  1. 移动端测试===Android内存管理: 理解App的PSS

    Android内存管理: 理解App的PSS 原文链接:http://www.littleeye.co/blog/2013/06/11/android-memory-management-unders ...

  2. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解

    原文链接:Hello, Android Multiscreen_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android Multiscreen深入理解. 本 ...

  3. 【Android端 APP GPU过度绘制】GPU过度绘制及优化

    一.Android端的卡顿 Android端APP在具体使用的过程中容易出现卡顿的情况,比如查看页面时出现一顿一顿的感受,切换tab之后响应很慢,或者具体滑动操作的时候也很慢. 二.卡顿的原因 卡顿的 ...

  4. Android进阶笔记07:Android之MVC 理解

     1. 为什么需要MVC ? 软件中最核心的,最基本的东西是什么?  答:是的,是数据.我们写的所有代码,都是围绕数据的.      围绕着数据的产生.修改等变化,出现了业务逻辑.      围绕着数 ...

  5. Android 启动APP黑屏解决方案

    #Android 启动APP黑屏解决方案# 1.自定义Theme //1.设置背景图Theme <style name="Theme.AppStartLoad" parent ...

  6. Android灯光系统--深入理解背光灯

    Android灯光系统--深入理解背光灯 一.怎么控制背光灯(简述) APP将亮度值写入数据库 线程检测数据库的值是否发生变化 这种机制成为"内容观察者"--contentObse ...

  7. Jsoup抓取网页数据完成一个简易的Android新闻APP

    前言:作为一个篮球迷,每天必刷NBA新闻.用了那么多新闻APP,就想自己能不能也做个简易的新闻APP.于是便使用Jsoup抓取了虎扑NBA新闻的数据,完成了一个简易的新闻APP.虽然没什么技术含量,但 ...

  8. 【Flutter学习一】Android的App的三种开发方式

    是时候学习新技术了: 转自:https://blog.csdn.net/qq_41346910/article/details/86692124 移动开发发展到现在,已经出现了三种开发方式.本文我将为 ...

  9. Android动画的理解

    基础知识 在我们开始讲Android动画这个知识点之前,我们了解下相应的基础知识点. Shape篇 一般用Shape定义的XML文件是存放在Drawable目录下,广泛应用于在Button.TextV ...

  10. Cordova 打包 Android release app 过程详解

    Cordova 打包 Android release app 过程详解 时间 -- :: SegmentFault 原文 https://segmentfault.com/a/119000000517 ...

随机推荐

  1. php 过滤emoji

    function filter_emoji_string($str){ $str = trim($str); $str = preg_replace_callback('/./u',function ...

  2. Gviz

    1) Introduction 为了理解基因组数据,通常旨在在基因组浏览器中绘制这样的数据,以及各种基因组注释特征,例如基因或转录物模型,CpG岛,重复区域等.这些功能可以从ENSEMBL或UCSC等 ...

  3. padright padleft

    在 C# 中可以对字符串使用 PadLeft 和 PadRight 进行轻松地补位. PadLeft(int totalWidth, char paddingChar) //在字符串左边用 paddi ...

  4. 对实体类的CRUD操作

    --------------------siwuxie095 对实体类的 CRUD 操作 1.创建数据库和表 (1)创建一个 MySQL 连接:mybatis_conn (2)创建一个数据库:myba ...

  5. 使用maven管理引入jdk1.8

    需要在配置文件settings.xml中加入: <profile> <id>jdk-1.8</id> <activation> <activeBy ...

  6. SNP问题大集锦

    SNP问题大集锦 [2017-01-19]       最近小编对基因检测很感兴趣,也跟风去测了一下,这一测不要紧,吓得小编几天没睡着觉,这不,检测报告上称小编的减肥能力弱,虽然小编一家都是胖子,唯有 ...

  7. POJ2585 Window Pains 拓扑排序

    Window Pains Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1843   Accepted: 919 Descr ...

  8. DNS/BIND in Debian

    Debian official document:http://www.debian.org/doc/manuals/network-administrator/ch-bind.html Buildi ...

  9. 我所理解的 Laravel 请求 生命周期

    转载自:https://laravel-china.org/topics/3343/my-understanding-of-the-laravel-request-life-cycle 当你使用一个工 ...

  10. sublime3中运行python 和设置

    点bulid system建立下面文件 {"cmd":["C:/ProgramData/Anaconda3/python.exe", "-u" ...