自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android中hybrid开发的基础知识

前言现在很多App里都内置了Web网页(Hybrid App),比如说很多电商平台,淘宝、京东、聚划算等等。那么这种该如何实现呢?其实这是Android里一个叫WebView组件实现。下面将围绕着这点进行详细的整理说明。简介android控件中的WebView,一个基于webkit引擎、展现web页面的控件Android 4.4前:Android Webview在低版本 & 高版...

2020-03-05 15:48:48 566

原创 android中性能优化需要了解的

在android开发中,每次写下一块代码的时候,性能问题是必须要着重考虑的。因为每次迭代开发中不注意,想要留着在后期进行优化,那么问题逐渐变得难以控制。所以我们需要对性能这方面进行时刻的自我提醒。那么下面就从一些常见的地方说起。一、性能优化有哪些绘制优化内存优化电量优化启动优化IO优化流量优化图片优化apk优化二、IO优化文件使用缓冲流读写,避免使用字节流读写sh...

2020-03-05 15:11:48 325

原创 android中线程间通讯的精彩问答

构建handler消息机制中的几个阶段分别作了什么事?准备阶段 Looper.prepare();在当前线程实例化了 Looper对象,并放到静态变量sThreadLocal中。而构造Looper的时候,实例化了MessageQueue对象,并持有native的一个指针,方便后续的消息导致线程唤醒以及阻塞的状态循环阶段 Looper.loop();通过sThreadLocal...

2020-03-05 14:48:40 176

原创 [转载]Android数据持久化之SharedPreferences

一、抛出问题SharedPreferences作为Android中数据存储方式的一种,我们经常会用到,它适合用来保存那些少量的数据,特别是键值对数据,比如配置信息,登录信息等。不过要想做到正确使用SharedPreferences,就需要弄清楚下面几个问题:(1) 每次调用getSharedPreferences时都会创建一个SharedPreferences对象吗?这个对象具体是哪个类对象?...

2020-02-15 10:32:06 167

原创 [转载]android中线程类之IntentService

一、 定义IntentService是Android里面的一个封装类,继承自四大组件之一的Service。IntentService继承自Service,所以,我们可以用来执行后台耗时任务。那为什么又要封装一个这样的IntentService呢?下面我们来看看IntentService有什么特点。二、作用处理异步请求,实现多线程。它本质是一种特殊的Service,继承自Service并且...

2020-02-14 10:56:56 86

原创 [转载]android中线程类之HandlerThread

我们知道在Android系统中,我们执行完耗时操作都要另外开启子线程来执行,执行完线程以后线程会自动销毁。想象一下如果我们在项目中经常要执行耗时操作,如果经常要开启线程,接着又销毁线程,这无疑是很消耗性能的?那有什么解决方法呢?使用线程池使用HandlerThread本篇文章主要讲解一下问题HandlerThread的使用场景以及怎样使用HandlerThread?HandlerT...

2020-02-11 16:14:23 98

原创 [转载]android中线程类之AsyncTask

一、Android中的线程在操作系统中,线程是操作系统调度的最小单元,同时线程又是一种受限的系统资源,即线程不可能无限制地产生,并且**线程的创建和销毁都会有相应的开销。**当系统中存在大量的线程时,系统会通过会时间片轮转的方式调度每个线程,因此线程不可能做到绝对的并行。如果在一个进程中频繁地创建和销毁线程,显然不是高效的做法。正确的做法是采用线程池,一个线程池中会缓存一定数量的线程,通过线程...

2020-02-11 15:54:50 78

原创 android中线程类之Runnable-Thread-Callable

在java中想要创建一个线程可运行实例,通常有以下几种方式实现Runnable继承Thread实现Callable接下来主要针对这几种方式的使用,实现原理和细节,以及区别进行探讨。Thread使用继承Thread类,需要覆盖方法 run()方法,在创建Thread类的子类时需要重写 run(),加入线程所要执行的代即可。直接继承Thread类有一个很大的缺点,因为“java类的继...

2020-02-11 15:21:35 539

原创 android中的线程类

在android的开发中,一定会遇到使用线程的情况。那么android就已经给我们提供了诸多的线程类,根据不同的使用场景进行直接使用而不必再次封装。假使经验不足的开发,自己封装说不准还有各种潜在的问题。虽然我们可以直接用这些已经封装好了的线程类,那我们也需要深入学习一下这些类使用,以及内部实现原理和细节,以及整个封装的想法。这样有助于我们在自己的开发中增加实用技巧和经验。那么有哪些线程类呢...

2020-02-11 10:47:10 239

原创 android系列之AIDL的使用

Android中的IPC方式有Bundle、文件共享、Messager、AIDL、ContentProvider和Socket。以下是这些的优缺点和适用场景。那么下面主要讲解一下如何使用AIDL,以及在使用过程中可能遇到的问题。预备知识AIDL使用简单的语法来声明接口,以及描述其方法以及方法的参数和返回值。这些参数和返回值可以是任何类型,甚至是其他AIDL生成的接口。重要的是必须手动导入...

2019-12-27 17:11:07 807 1

原创 android系列之service基础篇

概述1. 长时间后台运行而没有用户界面2. 主线程运行启动方式及生命周期startService 方式启动生命周期独立于启动它的组件,即使启动它的组件已经销毁了也不受任何影响,由于启动的服务长期运行在后台,这会大量的消耗电量,因此,我们应该在任务执行完之后调用 stopSelf 来停止服务,或者通过其他应用组件调用 stopServcie 来停止服务。生命周期:onCreate -...

2019-12-27 15:53:10 391 1

原创 java知识系列之并发基础

谈及到java中并发相关知识的时候,总是围绕多线程展开的。那么先看一下进程与线程的东西进程与线程进程与线程进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。(进程是资源分配的最小单位)线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位)线程和进程一样分为...

2019-12-26 16:51:55 68

原创 java知识系列之并发集合

JDK1.5中为我们提供了一系列的并发容器,集中在java.util.concurrent包下,先从同步容器说起。同步容器Vector和HashTable这两个是非常古老的集合了,可以追溯到JDK1.0。为了简化代码开发的过程,早期的JDK在java.util包中提供了Vector和HashTable两个同步容器,这两个容器的实现和早期的ArrayList和HashMap代码实现基本一样,...

2019-12-26 15:58:34 118 1

原创 java知识系列之线程池篇

本文主要讲解java中线程池的。前言Executor框架是一个根据一组执行策略调用,调度,执行和控制的异步任务的框架,目的是提供一种将”任务提交”与”任务运行”分离开来的机制。继承体系Executorvoid execute(Runnable command)。ExecutorService 接口在其父类接口基础上,void shutdown(); 启动有序关闭,在该关闭...

2019-12-26 11:37:44 76

原创 java知识系列之集合理论篇

本文主要综合介绍java集合中比较重要的一些概念和实现。如下图基础部分CollectionList:接口实例存储的是有序的,可以重复的元素。ArrayList- 底层使用数组- 读取速度快,增删速度慢- 不是线程安全的,只能在单线程环境下,多线程环境下可以考虑用collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也...

2019-12-25 16:12:23 124

原创 操作系统知识系列之基础篇

一、操作系统概述特性1. 并发: 同一时间间隔内支持执行多个任务, 对于一个核则是交替执行;2. 共享: 硬件资源或数据资源支持多个进程共享;3. 异步: 并发情况下, 一个程序会陆陆续续被执行,完成时间不可预知;4. 虚拟: 物理实体转化为逻辑实体,如虚拟内存。基本功能CPU管理:对处理器的管理和调度最终归结为对进程和线程的管理和调度,包括进程控制和管理,线程控制和管理,确定处...

2019-12-25 14:22:14 619

原创 网络知识系列之有趣的问题

问1. UDP中一个包的大小最大能多大注:本问题摘自UDP中一个包的大小最大能多大整理到这里,是因为看到这个问题感觉有意思,虽然问题看着简单,但是这个考察了网络原理中较为基础的知识以及实际场景中的应用。先把原文地址放在上面,下面开始做一些简要回答。答:在网络体系中根据TCP/IP协议将网络分层为:应用层,传输层,网络层,数据链路层。那么UDP则属于传输层。根据不同网络的场景来看,主要可分为局...

2019-12-24 17:22:35 266

原创 网络知识系列之基础篇

1.计算机网络体系结构开放系统互连基本参考模型, 只要遵守这个OSI标准, 任何两个系统都能进行通信. OSI是七层协议体系结构, 而TCP/IP是一个四层协议体系结构, 于是我们采取折中的方法, 学习计算机网络原理的时候往往用的是五层协议的体系结构 : 物理层, 数据链路层, 网络层, 传输层和应用层。接下来我们跟着从应用层依次向下讲起这协议体系中较为重要的协议。2. Http以及Htt...

2019-12-24 16:54:48 186

原创 java知识系列之写代码前的思考

单一职责原则:一个类只做它该做的事情。(单一职责原则想表达的就是"高内聚",写代码最终极的原则只有六个字"高内聚、低耦合",所谓的高内聚就是一个代码模块只完成一项功能,在面向对象中,如果只让一个类完成它该做的事,而不涉及与它无关的领域就是践行了高内聚的原则,这个类就只有单一职责。我们都知道一句话叫"因为专注,所以专业")开闭原则:软件实体应当对扩展开放,对修改关闭。(在理想的状态下,当我们需...

2019-12-24 14:03:16 132

原创 java知识系列之内存模型

概述Java内存模型是什么,为什么要有Java内存模型,Java内存模型解决了什么问题等。在介绍Java内存模型之前,先来看一下到底什么是计算机内存模型,然后再来看Java内存模型在计算机内存模型的基础上做了哪些事情。要说计算机的内存模型,就要说一下一段古老的历史,看一下为什么要有内存模型。前言我们应该都知道,计算机在执行程序的时候,每条指令都是在CPU中执行的,而执行的时候,又免不了要和...

2019-12-23 17:21:12 82

原创 java知识系列之内存结构与内存模型的辨析

首先说什么是内存结构?为什么会有内存结构?内存结构是什么样的?java内存结构虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途。方便程序管理与开发PC寄存器: cpu中,线程私有java虚拟机栈:线程私有本地方法栈:线程私有java堆: 线程共享方法区:线程共享运行时常量池- 用于存放编译期生成的各种字面量和符号引用。但是,...

2019-12-23 17:17:42 79

原创 java知识系列之类加载

类加载的过程类加载的过程: 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括加载,验证,准备,解析,初始化,使用,卸载。其中类加载:加载通过一个类的全限定名类获取定义此类的二进制字节流将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构在java堆中生成一个代表这个类的Class对象,作为方法区这些数据的访问入口链接验证验证是链接阶段的第...

2019-12-23 17:02:12 56

原创 java知识系列的虚拟机

java虚拟机JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。关于并发编程在并发编程领域,有两个关键问题:线程之间的通信和同步。线程之间的通信线程的通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状...

2019-12-23 15:51:53 173

原创 Java知识系列之基础内容

java三大特性抽象抽象类与接口的区别封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。多态:多态性是指允许不同子类型的对象对同一消息作出不同的响应。静态多态:重载,编译期动态多态:重写,运行时重写要求:父子类方法名,与方法参数一致(参数个数,类型,顺序)返回的数据类型必须是父类相同或者是其子类访问修饰符必的限制必须要大于父...

2019-12-23 15:45:19 258

spring教程3 epub电子书版本

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

2017-12-04

深入理解android 3

《深入理解Android(卷3)》是Android经典畅销书系“深入理解Android”系列Framework卷的第III卷,从源代码的角度,对Android系统的Audio和UI两大功能的相关模块的实现原理和工作机制做了系统且详细的分析,填补了市场的空白。

2017-12-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除