android框架

Android系统架构

梦想的初衷 提交于 2019-12-16 01:59:50
最近为了更深入的学习,由于遇到一本不错的书,所以开始写相关的读书笔记。同时开始练习相关的Markdwon写法。 1Android 系统机构 1. 应用层 2. 应用框架层(Java Framework) 提供的一些常用的API 名称 功能描述 Activity Manager(活动管理器) 管理各个应用程序生命周期以及通常的导航回退功能 Location Manager(位置管理器) 提供地理位置以及定位功能服务 Package Manager(包管理器) 管理所有安装在Android系统中的应用程序 Notification Manager(通知管理器) 使得应用程序可以在状态栏中显示自定义的提示信息 Resource Manager(资源管理器) 提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等 Telephony Manager(电话管理器) 管理所有的移动设备功能 Window Manager(窗口管理器) 管理所有开启的窗口程序 Content Providers(内容提供器) 使得不同应用程序之间可以共享数据 View System(视图系统) 构建应用程序的基本组件 3. 系统运行库层(Native) 1. C/C++程序库 名称 功能描述 OpenGL ES 3D绘图函数库 Libc 从BSD 继承来的标准C系统函数库

OkHttp官方教程解析-彻底入门OkHttp使用

元气小坏坏 提交于 2019-12-14 13:00:15
最近半年来身边开发的朋友越来越多的提到OkHttp,上谷歌百度一下,确实OkHttp成了时下最火的HTTP框架,于是我也开始放下Volley,转而关注OkHttp,五一期间仔细看了官方WiKi介绍(我喜欢学习官方的文档),现在把自己整理的官方教程分享给大家,希望给初学者带来帮助。 OkHttp官网地址: http://square.github.io/okhttp/ OkHttp GitHub地址: https://github.com/square/okhttp 官网的自我介绍: HTTP is the way modern applications network. It’s how we exchange data & media. Doing HTTP efficiently makes your stuff load faster and saves bandwidth. OkHttp is an HTTP client that’s efficient by default: • HTTP/ 2 support allows all requests to the same host to share a socket . • Connection pooling reduces request latency ( if HTTP/ 2 isn’t available)

1

被刻印的时光 ゝ 提交于 2019-12-14 07:15:04
Java基础 Java集合框架 Java集合——ArrayList Java集合——LinkedList Java集合——HashMap Java集合——TreeMap Java集合——LinkedHashMap Java泛型 Java反射(一) Java反射(二) Java反射(三) Java注解 Java IO(一) Java IO(二) RandomAccessFile Java NIO Java异常详解 Java抽象类和接口的区别 Java深拷贝和浅拷贝 Java transient关键字 Java finally与return执行顺序 Java 8 新特性 Java并发 Java创建线程的三种方式 Java线程池 死锁 Synchronized/ReentrantLock 生产者/消费者模式 volatile关键字 CAS原子操作 AbstractQueuedSynchronizer详解 深入理解ReentrantLock Java并发集合——ArrayBlockingQueue Java并发集合——LinkedBlockingQueue Java并发集合——ConcurrentHashMap Java虚拟机 对象的创建、内存布局和访问定位 Java内存区域与内存模型 Java类加载机制及类加载器详解 JVM中垃圾收集算法及垃圾收集器详解 JVM怎么判断对象是否已死?

Android 知识梳理目录

左心房为你撑大大i 提交于 2019-12-13 20:00:23
一、Java 知识梳理 Java&Android 基础知识梳理(0) - Java 基础知识大纲 Java&Android 基础知识梳理(1) - 注解 Java&Android 基础知识梳理(2) - 序列化 Java&Android 基础知识梳理(3) - 内存区域 Java&Android 基础知识梳理(4) - 垃圾收集器与内存分配策略 Java&Android 基础知识梳理(5) - 类加载&对象实例化 Java&Android 基础知识梳理(6) - 字节输入输出流 Java&Android 基础知识梳理(7) - Android 虚拟机 Java&Android 基础知识梳理(8) - 容器类 Java&Android 基础知识梳理(9) - LruCache 源码解析 Java&Android 基础知识梳理(10) - SparseArray 源码解析 Java&Android 基础知识梳理(11) - 浅拷贝 Vs 深拷贝 Java&Android 基础知识梳理(12) - 泛型 Java&Android 基础知识梳理(13) - 反射 二、Android 基础知识 2.1 Activity 知识梳理 Activity 知识梳理(1) - Activity 生命周期 Activity 知识梳理(2) - Activity 栈 Activity 知识梳理(3) -

Android示例应用:开源框架Glide的使用

浪子不回头ぞ 提交于 2019-12-13 08:51:35
Android开源框架Glide的使用-示例应用 加载网络图片 加载网络图片 加载本地图片-简易图库 加载网络图片 引入对应的库 compile 'com.android.support:recyclerview-v7:25.0.0' compile 'com.github.bumptech.glide:glide:3.7.0' 创建 RecyclerView 的布局 res/layout/fragment_list.xml <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/recycler_view"></android.support.v7.widget.RecyclerView> 创建 RecyclerView 的每个item的布局 res/layout/list_item.xml 需要注意不要都写成 match_parent 或 wrap_content

Data Binding on Android

不羁岁月 提交于 2019-12-12 09:25:16
Data Binbing框架是在2015年Google I/O大会上最早提出来的,一直在Android开发者中热议,但是很少有真正在项目中用到。本文简单介绍Data Binding框架的简单用法以及其特点。 Android官网已经提供了支持Data Binding的support library,支持Android 2.1(API level 7+)以上版本。与常规Android工程配置相比,Data Binding支持需要配置如下编译环境: Android Studio 1.3以上才支持Android数据绑定 在Android SDK manager中下载最新的Android Support Library 在app工程build.gradle中配置dataBinding支持开关 在build.gradle添加dataBinding依赖库 build.gradle配置如下: android { .... // dataBindng开关 dataBinding { enabled = true } } dependencies { .... // 添加dataBinding支持依赖库 compile 'com.android.support:appcompat-v7:23.3.0' } Hello DataBinding DataBinding Layout DataBinding

webview与android java交互

[亡魂溺海] 提交于 2019-12-11 10:16:49
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 最早使用mfc来做pc软件的ui,是很痛苦的,老板还会经常提出一些UI新方案,那很折磨人的心智的, 后来使用了htmllayout,UI的设计和实现,彻底交给了美工和产品设计,生产效率提高了很多。游戏制作ui时,我使用过cegui,感觉还行,太专业化。在symbian年代,我尝试过用html来布局ui,最终还是失败了。现在好了,android和ios,都支持webview了,ui制作会更加简单,但高兴之余,也带来了很多麻烦。 webview带来的麻烦: 内存 响应速度 下面主要谈谈从这2方面入手解决 一,webview和android 交互 二,选择jqery框架 三,图片处理 来源: oschina 链接: https://my.oschina.net/u/256257/blog/52563

谈谈Android AOP技术方案

假装没事ソ 提交于 2019-12-11 10:08:08
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 理解AOP 之前几篇文章我们详细介绍了AOP的几种技术方案,由于AOP技术复杂多样,实际需求也不尽相同,那么我们应该如何做技术选型呢? 本篇将会对现有的AOP技术做一个统一的介绍,尤其侧重在Android方向的落地,希望对你有所帮助,文中内容、示例大都来自工作总结,如有偏颇不妥,欢迎指正。 这里先统一一下基本名词,以便表述。 切面: 对一类行为的抽象,是切点的集合,比如在用户访问所有模块前做的权限认证。 切点: 描述切面的具体的一个业务场景。 通知(Advice)类型: 通常分为切点前、切点后和切点内,比如在方法前织入代码是指切点前。 AOP是一种面向切面编程的技术的统称,AOP框架最终都会围绕class字节码的操作展开,无论是对字节码的操作增删改,为方便描述,我们统称为 代码的织入 。 虽然AOP翻译过来叫面向 切面 编程,但在实际使用过程中,切面可能退化成了一个 点 ,比如我们想统计app的冷启动时间,这就非常具体了。如果我们用AOP的技术实现统计所有函数的耗时时间,自然能统计到类似启动这个阶段的时间。 从狭义来看实现AOP技术的框架必须是能将切面编程抽象成上层可以直接使用的工具或API,但当我们将 切面 降维后,最终面向的就是 切点 而已。换句话说,只要能将代码织入到某个点那这种技术就一定可以实现AOP

Android 组件化 ARouter 的使用

爷,独闯天下 提交于 2019-12-10 19:20:09
背景 随着我们的项目的内容的增加模块的增加导致项目层次不够分明,并且有时候debug一下改一下东西可能我们需要几分钟来运行一个项目这明显不是我们想要的,所以这个时候就把组件化引入到我们的项目中来了。 顺道提一下 “组件化” 和 “模块化” 的区别 组件化: 组件化更注重业务逻辑,可以单独编译成 APP, 负责单一业务,具备自身的生命周期,将白了就是一个可以独立运行的APP。(后面会有体现) 模块化: 模块化更注重的是某一块功能,无关业务,例如网络请求模块,图片加载模块,支付模块等等。 好了进入正题,讲到组件化我们不得不讲到 ARouter (当然也可以是其他的路由跳转库 mzule ActivityRouter 等等)这里我们就以 ARouter 为例子。 ARouter 是什么 一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦 为什么要用 ARouter ARouter框架不仅提供了强大的路由跳转功能,还有其他的能力。该框架对模块解耦,组件化设计提供了强有力的支持。 ARouter框架提供的具体功能包括Native页面跳转,URL页面跳转,获取Fragment,提供能力接口,拦截器等。 组件化如何使用 ARouter 按照惯例我们先引入 ARouter 库,在 app 的 build.gradle 文件加入以下内容 android {

编译android源代码以及ramdisk.img system.img userdata.i...

社会主义新天地 提交于 2019-12-10 15:56:38
一、编译android 源码 参考 http://my.oschina.net/u/561492/blog/89965 编译完成后,可以在源码目录的out/target/product/generic/目录下看到编译好的ramdisk.img、system.img 和 userdata.img了。 二、 Android ramdisk.img system.img userdata.img 介绍与使用 android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中, ramdisk.img是emulator的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些 用户 数据,emulator负责加载这3个映像文件后,会把system.img和userdata.img分别加载到 ramdisk文件系统中的system和 userdata目录下(会发觉有相似性)。 我们会发觉编译生成的root 文件夹 内容与android运行时根目录内容相似,ramdisk根文件系统中包含一些对于启动android的很重要的文件,比如内核启动完后加载的第一个进程init、一些重要的配置文件等,总之它控制着整个android的启动。根据 init.rc,init.goldfish.rc来初始化并装载系统库、 程序