自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(142)
  • 收藏
  • 关注

原创 第五课:Activity精讲

Activity就是我们看到的APP页面,它是Android的一个应用组件,提供用户与屏幕进行交互。每个Activity都会获得一个用于绘制其用户界面的窗口,窗口可以充满哦屏幕也可以小于屏幕并浮动在其他窗口之上。它是Android开发的核心,本节课将以它为核心,辐射引出相关的干货实用知识点。让你快速熟悉Android开发。一、新建后必须注册:APP运行的时候才能找到它。注册位置请看下图:APP启动的第一个页面特殊处理:二、Activity的生命周期:学习它的重要性在于:...

2020-07-18 15:11:44 210

原创 第四课:一个APP开发包含的基本内容--先了解整体概念

现在我们的手机上都有很多 APP,点击某一个APP打开之后,我们可以完成我们各种想做的事,那么一个APP都包含哪些东西呢?让我慢慢道来。一、一个Android开发者要了解的基本内容(下面以淘宝的首页来讲解)大家看到后,也许会说这个页面很复杂,我怎么看的懂,一时根本无法接受,别急,听完这节课,你一定不会迷茫,对学习Android一定信心百倍。APP页面的几个重要组成部分:1.Activity:它就是我们看到的这个页面的载体,它的名字可以随便起,代码中我们叫类--Class...

2020-07-18 15:06:06 384

原创 第二课:手把手教你搭建Android开发环境配置JDK

一、搭建什么环境(先以windows系统为例)这里的搭建环境主要是安装JDK(java开发工具包)下载JDK1.8就行。原因:Android开发需要我们具备两部分知识:(不要慌,后面都会细细讲,先提一下有个概念)1.java语法知识:这个主要是用于逻辑代码的书写。app页面一个按钮的点击、页面的跳转,数据的展示都是java语言来写的,安装JDK就是为了能使用java语法所有的api(java自带的功能,我们需要用的)2.Android系统的知识:包括Android开发的所有知识。二、JD

2020-07-18 15:05:27 513

原创 第一课:手把手教你安装Android开发工具AS

一、如何新建一个APP并在手机运行电脑上安装开发工具androidstudio(简称AS,谷歌官方指定的开发工具,也是互联网大厂普遍使用的开发工具,最早的开发工具eclipse,adt都已经淘汰)。 配置Android的开发环境。 打开AS创建一个demo,安装运行。...

2020-07-18 15:04:23 663 1

原创 自定义控件以及事件分发机制

一、自定义控件的含义:三种方式(1)几种系统控件的组合。(2)自定义一个类继承View。(3)自定义一个类继承viewGroup。含义: 二、为何要自定义控件(1) (2) (3) 三、ViewGroup事件的消耗和传递中的三个重要方法: 使用的案例: 这幅图要实现的逻辑代码:   四、事件的传递Vie

2018-01-19 21:40:14 630

原创 网络协议族精讲--良心总结

协议族精讲各种协议在OSI七层模型中:最底下两层根据计算机的设备驱动程序和网络硬件而定,有时候把最上面的三层合并成一层,统称为应用层。应用层也就是我们常用的Web服务器、FTP服务器所在的层次。TCP/IP协议族四层模型:各层级之间通过接口和服务进行连接,上层协议使用下层协议的服务,下层协议给上层协议提供一个接口。各个协议层的作用:最底层:数据链路层:qq发送一句话,通过数

2018-01-19 21:17:29 1758

原创 Android阿里、京东、美团等大厂面试java篇

java部分数据结构篇一、JAVA数据类型1.JAVA基本数据类型前四种都属于整形。2.引用数据类型二、ArrayList、LinkedList、Vector的区别 1.ArrayList:--基于数组,采用懒加载策略、允许对元素的快速随机访问以及在链表尾部进行插入或删除元素操作。ArrayList适合随机访问,而不适合插入和删除。采用异步处理,线程不安全,性能较高。2. Vector:--基于数组。实例化对象时就初始化内部数组、支持线程同步,正是由于Vector保.

2020-11-11 16:52:02 246

原创 Android阿里、京东、美团等大厂面试Android篇

webView相关知识点原生和H5交互一、原生访问 h5H5暴露全局方法提供给app调用1.使用webView.loadUrl(javascript: jsString), jsString是要调用的js代码的字符串。2.主要步骤:(1)在H5页面写一个方法(2)原生通过webView.loadUrl直接调用二、 H5访问原生的方法原理:原生通过webViewd的API-addJavascriptInterFace,传递一个自己事先写好的接口类并声明接口类的..

2020-11-11 16:44:25 743 1

原创 Java的注解原理

Java的注解原理一、注解的简介注解是标记,也可以理解成是一种应用在类、方法、参数、属性、构造器上的特殊修饰符。二、注解作用有以下三种:第一种:生成文档,常用的有@param@return等。第二种:替代配置文件的作用,尤其是在spring等一些框架中,使用注解可以大量的减少配置文件的数量。第三种:检查代码的格式,如@Override,标识某一个方法是否覆盖了它的父类的方法。三、注解的底层实现原理:注解的底层也是使用反射实现的,注解和接口有点类似,不过申明注解类需要加...

2020-09-10 09:40:27 444

原创 Java中的系统异常体系篇

Java中的系统异常体系一、Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型。二、 ErrorError:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。三、Ex...

2020-09-10 09:39:13 202

原创 Android中网络相关篇

一、HTTP、TCP、IP协议相关点(一)HTTP基本定义:1.HTTP:超文本传输协议:它用于传送WWW方式的数据, HTTP协议采用了请求/响应模型。2.HTTP的构成:(1)HTTP请求报文:由请求行、请求头部、空行和请求数据4个部分组成。(2)HTTP响应也由三个部分组成,分别是:状态行、消息报头、响应正文。(3)HTTP与HTTPS区别:HTTP协议传输的数据都是未加密的,也就是明文的,不安全,端口80; HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份

2020-09-10 09:37:37 136

原创 Java三大特性

(一)封装的概念通过定义接口来访问类的私有属性—即 set/get方法,示例:外部设置使用类里面的私有属性接口就是:给外面提供方法来访问自己。(二)面向对象-继承1.继承的概念用例演示:如果子类继承父类,子类就拥有父类的一些属性和方法。(三)面向对象-多态概念用例演示;每个车都有自己的骑法,上面new一个car的子类,来实现摩托车的骑法。就是多态的用法。(四)方法重载概念代码用例演示重载中传入不定量参数的方法

2020-09-10 09:36:41 127

原创 Java系统知识点相关篇--JVM

一、JAVA虚拟机(JVM)的内存结构,以及它们的作用(一)概述:保证java的跨平台性,不同的平台可以下载对应JVM来运行java文件。(二)、JVM的运行过程首先Java源文件经过前端编译器(javac或ECJ)将.java文件编译为Java字节码文件,然后JRE加载Java字节码文件,载入系统分配给JVM的内存区,然后执行引擎解释或编译类文件,再由即时编译器将字节码转化为机器码。主要介绍下图中的类加载器和运行时数据区两个部分。(三)、jvm的GC回收算法1.标记 -清除算法:.

2020-09-10 09:35:21 146

原创 java中的数据存储机制

(一)java的六种存储地址及解释(1)寄存器(register):这是最快的存储区,因为它位于处理器内部。但数量极其有限,所以寄存器由编译器根据需求进行分配。(2)堆栈(stack):位于通用RAM中,但通过它的“堆栈指针”可以从处理器哪里获得支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放那些内存。这是一种快速有效的分配存储方法,仅次于寄存器。创建程序时候,JAVA编译器必须知道存储在堆栈内所有数据的确切大小和生命周期,因为它必须生成相应的代码,以便上下移动堆栈指针。这一约束限制了程

2020-09-10 09:34:13 298

原创 JAVA数据类型详解

一、JAVA数据类型1.JAVA基本数据类型前四种都属于整形。写法演示:2.引用数据类型二、ArrayList、LinkedList、Vector的区别 1.ArrayList(1)ArrayList是基于数组实现的,采用懒加载策略(第一次add时才初始化内部数组,默认初始化大小为10)。(2)它允许对元素的快速随机访问以及在链表尾部进行插入或删除元素操作。但是当随机插入元素时,如果此时数组大小已经不能满足再插入元素时就会进行扩容操作【扩容为原来集合容量的1.5.

2020-09-10 09:31:47 97

原创 Flutter和RN对比分析

1.Flutter(1)Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。用于创建高性能、跨平台的移动应用的框架。(2)Flutter的开发语言是DartRN的效率由于是将View编译成了原生View,所以效率上要比基于Cordova的HTML5高很多, RN的渲染机制是基于前端框架的考虑,复杂的UI渲染是需要依赖多个view叠加.会有多少个对象需要渲染。 Flutter在渲染技术上,选择了自己实现(GDI),由于有更好的可控性,使用了新的语言Dart

2020-09-09 14:15:57 1202

原创 Android热更新

(一)热更新(一)Android热更新简介热更新产生的背景热更新技术的用途热更新的发版流程以及优势(二)常见的热修复框架Andfix---阿里巴巴:是基于C和C++层实现的,使用简单,速度非常快。 Nuwa(来源于女娃名字的汉语拼音),RocooFix:底层原理都是基于ClassLoader。 Thinker:微信在2016年推出的,在社区很火,官方维护很积极。 Robust:美团推出的框架,基于google的一套方案。Anfix热修复的demo的代码演示:

2020-09-09 14:14:38 491

原创 MVC/MVP/MVVM精讲

(一)、mvc架构的图示2.MVC的工作原理Model:用于网络请求View:界面的展示Controller:指Activity和fragment重点图:虚线表示MVC的被动过程。(二)、MVP架构(三)、MVVM

2020-09-09 14:13:27 95

原创 Android 性能优化—内存管理

(一)内存优化理论Android 的内存管理方式分配机制:操作系统为每一个进程分配一个合理的内存大小,从而保证每一个进程能够正常的运行。 回收机制:当系统出现内存不足的时候,需要一个合理的回收再分配机制,从而保证新的进程能够进行,当系统回收的时候需要杀死一些正在运行的进程,此时操作系统需要一个合理的杀死进程的机制以保证更少的副作用2.内存的分配机制内存的回收机制:(1)回收进程可见进程:没有任何前台组件,但仍然会影响用户在屏幕上所见内容的一些进程,系统一般也不会杀死它。服务进

2020-09-09 14:11:46 108

原创 Android View相关原理剖析

一、Android 的事件分发机制1.事件分发的顺序:Activity => ViewGroup => View 的顺序进行事件分发,onTouch()执行总优先于onClick(),然后通过调用 onTouchEvent() 方法进行事件的处理。我们在项目中一般会对MotionEvent.ACTION_DOWN,MotionEvent.ACTION_UP,MotionEvent.ACTION_MOVE,MotionEvent.ACTION_CANCEL 分情况进行操作..

2020-09-09 14:10:36 84

原创 Android多进程

一、Android多进程(一)概述:进程是系统分配资源的最小单位、不同进程间的资源和数据是相互隔离的,进程内可以运行多个线程,线程的崩溃可以影响到进程。(二)多进程开发的优势:1.解决主进程系统资源紧张问题,可以剥离占内存的资源到子进程。避免主进程OOM。2.解决应用架构的臃肿问题:可以把WebView/推送、后台服务剥离到子进程(因为他们功能比较单一)。3.进程间保活。(三)进程间通信1.概念:进程间通信(Inner-Process Comunication,简称IPC),就是

2020-09-09 14:08:29 173

原创 Activty原理深入剖析

一、Activity的加载过程(1)Activity调用startActivity或者startActivityForResult,Activity Thread传递进程间消息给AMS,AMS接收到创建Activity的请求之后会执行初始化操作,解析启动模式,保存请求信息等一系列操作,将当前系统栈顶的Activity执行onPause操作,继续执行启动Activity的逻辑,A通过socket与Zygote通讯,并告知Zygote进程fork出一个新的应用程序进程,然后执行ActivityThread的

2020-09-09 14:06:35 289

原创 Android操作系统的理解

一、Android操作系统的理解基于Linux内核,系上下分为四层结构,优势:安全、开放具有灵活性。图示1、Java应用程序层:应用程序层,我们开发的APP都是指在这一层。2、Java应用程序框架层隐藏在每个应用后面的是一系列的服务和系统。提供核心功能的API框架及各种服务和管理工具, 它主要包括以下几部分:视图(Views):UI的控件从这扩展。 内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据。

2020-09-09 14:04:36 810

原创 深入浅出理解ClassLoader

一、含义一个Java程序都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在的,则会引发系统异常。而程序在启动的时候,并不会一次性加载程序所要用的所有class文件,而是根据程序的需要,通过Java的类加载机制(ClassLoader)来动态加载某个class文件到内存当中的,从而只有cl

2020-09-09 14:02:32 107

原创 Android中webView精讲

交互:一、app 调用 h5 的代码:H5暴露全局方法提供给app调用代码`javascript:window’s = {double = value => value * 2,triple = value => value * 3,};android:webview.evaluateJavascript('window.sdk.double(10)', new Value Callback <String>() { @Override ...

2020-09-09 14:00:10 143

原创 Android中线程间通信--handler完美详细总结

Handler是Android中线程间通信的重要方式,常见的使用场景就是完成主线程和子线程之间的通信,也可以说是Android中的消息传递机制,Handler不仅仅能将子线程的数据传递给主线程,也能实现任意两个线程的数据传递。下来开始通过代码来看看handler的重要功能和使用方式。一、主要作用1.更新界面数据:主要是指子线程要更新UI必须通过Handler。2.发送和处理消息。二、使用方式handlerMessage方法主要实现线程间通信和数据传递。1.在主线程中:...

2020-08-29 14:19:15 910

原创 第十六课:Android打包发布

(1)在Android Studio 中选中app这么module,选择菜单栏“”Build——Generate signed APK“”(2)弹出窗口(3)创建密钥库及密钥,创建后会自动选择刚创建的密钥库和密钥(已拥有密钥库跳过)点击“Create new...”按钮创建密钥库Key store path:密钥库文件的地址Password/Confirm:密钥库的密码Key:Alias...

2020-07-18 15:09:10 162

原创 第十五课:Android 中service的使用

Service的生命周期与使用Service则是看不见的,承担后台任务。Service是Android的四大组件之一,所以系统不会轻易将其kill。服务可有其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信(IPC)。1.服务基本上分为两种形式:(1) 启动当应用组件(如Activity)通过调用startService()启动服务时,服务即处于“启动”状态。一旦启动,服务即可在后台无限期运行,即使启动服务的组..

2020-07-18 15:08:50 137

原创 第十四课:Android中开发常见的几个项目架构模式

Android开发中常见的几个模式:MVC/MVP/MVVM,现在比较常用的是MVP和MVVM模式。(一)、mvc架构的图示2.MVC的工作原理Model:用于网络请求View:界面的展示Controller:指Activity和fragment重点图:虚线表示MVC的被动过程。(二)、MVP架构(三)、MVVM实际开发中工程目录的包的定义规范...

2020-07-18 15:08:33 383

原创 第十三课:Android中的网络请求

对于android开发来说,http网络请求是开发中重要的一部分。一、HTTP请求原理http是一种应用层协议,它通过tcp实现了可靠的数据传输。详细的交互流程如下:客户端执行网络请求,从url中解析出服务器的主机名 将服务器的主机名转换成服务器ip地址 将端口号从url中解析出来 建立一条客户端与服务器的tcp链接 客户端通过输入流向服务器发送一条http请求 服务器向客户端回送一条http响应报文 客户端从输入流获取报文 解析报文,关闭连接HTTP请求方式g...

2020-07-18 15:08:17 334

原创 第十二课:Android中的数据存储

Android中五大数据存储方式,SharedPerference存储是重点,使用频率最高,其它方式可以作为了解。一、SharedPerference存储简介: SP存储是一种轻量级的数据存储,通常做一些简单,单一数据的持久化缓存,SharedPreference保存的数据是简单的key--value键值对。保存的数据是以xml文件的格式存储的。可设置数据只能是当前应用读取,而别的应用不可以,应用卸载时会删除此数据。1.使用场景:SharedPreferen...

2020-07-18 15:08:03 177 1

原创 第十一课:Android开发中广播的使用

广播在Android开发中也经常使用,主要是用来发消息和传递数据,本节课主要讲一下系统分广播和EventBus这个广播库的使用。一、Android 系统自带的广播使用:1.广播的含义:在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。在Android中则是通过sendBroadcast这个方法来发送,而在Android中要接受广播中的内容则是通过注册一个BroadCastReceiver来接收的。只有发送广播的action和接收广播的action相...

2020-07-18 15:07:48 538

原创 第十课:Android中fragment的使用

Fragment也是Android中经常使用的一个类,Fragment是Activity界面的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成,更帅气的是Fragment拥有自己的生命周期和接收、处理用户的事件,这样就不必在Activity写一堆控件的事件处理的代码了。更为重要的是,你可以动态的添加、替换和移除某个Fragment。一、Fragment的生命周期Fragment必须是依存与Activity而存在的,因此Activity的生命周期会...

2020-07-18 15:07:35 425

原创 第九课:Android原生与H5的交互

Android 开发中的页面一般都是原生自己的,就是我们所讲的layout布局文件,但是随着APP开发的发展和快速迭代的需要,App中的很多变化比较频繁的页面通常用H5来替换。所以就有了原生与H5的交互。这节课重点讲一下我们的重要组件webView,在原生中重要通过它来承载H5页面并与H5进行逻辑交互。一、WebView控件1.布局文件中添加:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xm...

2020-07-18 15:07:19 466

原创 第八课:Android开发必备的JAVA基础知识

Android开发的页面逻辑代码都是用JAVA语言来处理的,Java语言是博大精深的,要彻底掌握和精通是需要时间和项目实践的,本节课我只总结Android开发中需要掌握的java知识,方便大家快速上手开发,如果未讲到的知识点,大家可以在实际的开发中自己去查漏补缺。下面知识列出知识目录,大家可以根据知识点名称,对应去搜索学习详细的知识点:一、基本数据类型(开发中经常使用的数据类型)前四种都属于整形。写法演示:二、引用数据类型三、java中几个关键字1. ...

2020-07-18 15:06:58 285

原创 第七课:Android常用控件使用总结

Android控件相比H5来说还是比较少的,最经常使用的就那几个,我现在把这些控件经常使用的属性总结一下,也是开发中经常使用的。其它属性可以作为了解就行,需要用的的时候网上查一下就可以。一、Textview:主要作用:用来显示APP页面上的文字。高频使用的属性:1、android:text 设置文本的内容2、android:textColor 设置文本的颜色3、android:textSize 设置文本的字体大小(一般使用sp)4、android:height 设置文本...

2020-07-18 15:06:37 161

原创 第六课:Android中常用页面布局方式介绍

Android开发其实就是分为两部分:第一:画页面(根据UI提供的设计稿来画),第二:在Activity中处理业务逻辑和处理页面中我们刚画的各种控件的逻辑,后者因为要写逻辑涉及java基础语法的学习,我们先从简单的画页面开始。一、Android中常用页面布局方式 这个主要讲的是:你一个页面有很多控件摆放,到底这些控件是竖着摆,还是横着摆,还有一个页面有没有下拉刷新,滑动处理这就要涉及到布局方式了。下来我们就看看主要有哪些布局方式。1.线性布局--LinearLayout:在...

2020-07-18 15:06:19 293

原创 第三课:新建一个工程,体验自己的第一个APP

1.打开AS,新建一个项目2.定义工程的名称、包名、和存储位置3.选择sdk版本默认就行4.APP的启动要默认一个Activty(就是我们看到的页面),一般选择empty Activity就行。5.创建APP的后,我们看到的第一个页面6.新工程编译通过,可直接运行到手机7.demo的运行效果:demo下载链接 提取码: h7th...

2020-07-18 15:05:47 88

原创 cocos2d的简介

1.cocos2d的发展历程 2.学习的本质 3.相关工具: 4.Cocos2d 开发环境搭建 5.官方网址 6.下载需要的工具 7.下载cocos2d-js的版本 8.下载cocos2d的ide根据需要下载 9.python的官方网站  下载安装 12安装及路径的配置  检验安装成功与否 14.初次打开ide的基本配置选择语言 引擎模式: 15.创建项目  ...

2018-02-13 14:59:13 693

原创 As从入门到精通

Android Studio2.0 教程从入门到精通Windows版 - 安装篇系统要求· Win7或更高· 内存 最少 4 GB ,建议8 GB RAM· 硬盘 4G· Java Runtime Environment (JRE) 6或更高· Java Development Kit (JDK) 7 或更高下载新手建议下载安装版,比较简单一路Next就可以安装成功了。对于想要尝鲜的同学也可以去下...

2018-02-13 14:46:26 4522

空空如也

空空如也

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

TA关注的人

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