- 博客(21)
- 收藏
- 关注
原创 Android framework 初识
framework的工作相对于其他比较成熟的软件开发类似,分为维护和需求开发。需求开发需要注意的是:1 相关功能的现有模块需要非常熟悉,否则会有非常大的风险2 所写代码尽量与已有类似的代码保持风格一致3 必要的注释,写代码的时候认为代码的意图貌似是理所当然,但是当别人看你的代码或者过一段时间你自己查阅代码的时候,很有可能由于代码量过大,在代码的海洋中未必容易理解某一段代码的意图4 找比自己能力强的,经验较为丰富的同事review代码。系统层毕竟是上层应用的基础,必须保证其极高的稳定性,不
2022-02-12 13:50:29
199
原创 Android Framework初理解
framework的工作相对于其他比较成熟的软件开发类似,分为维护和需求开发。需求开发需要注意的是:1 相关功能的现有模块需要非常熟悉,否则会有非常大的风险2 所写代码尽量与已有类似的代码保持风格一致3 必要的注释,写代码的时候认为代码的意图貌似是理所当然,但是当别人看你的代码或者过一段时间你自己查阅代码的时候,很有可能由于代码量过大,在代码的海洋中未必容易理解某一段代码的意图4 找比自己能力强的,经验较为丰富的同事review代码。系统层毕竟是上层应用的基础,必须保证其极高的稳定性,不
2022-02-12 13:48:10
185
原创 Android Framework 初理解
framework的工作相对于其他比较成熟的软件开发类似,分为维护和需求开发。需求开发需要注意的是:1 相关功能的现有模块需要非常熟悉,否则会有非常大的风险2 所写代码尽量与已有类似的代码保持风格一致3 必要的注释,写代码的时候认为代码的意图貌似是理所当然,但是当别人看你的代码或者过一段时间你自己查阅代码的时候,很有可能由于代码量过大,在代码的海洋中未必容易理解某一段代码的意图4 找比自己能力强的,经验较为丰富的同事review代码。系统层毕竟是上层应用的基础,必须保证其极高的稳定性,不
2022-02-12 13:43:16
158
原创 Android Framework 初理解
概述其实我们写的App并不是一个完整的程序。我们写的只是一个套件组,就是一堆Activity,Service等等的组件。这个套件组给Framework框架组合在一起才是一个完整的程序。在这里先说一个概念,也就是EIT模型。E是Engine发动机,I是Interface接口,T是tire轮胎。也就是发动机通过接口接上轮胎,然后车子才能跑。然后框架提供的就是E&I,一般框架都是提供发动机和接口,让我们来做轮胎,然后装上就可以跑起来了。(这里的I也可以理解为抽象函数,因为抽象函数就相当于接口嘛)抽象类也
2022-02-12 10:42:31
1995
原创 flutter个人中心
import 'package:flutter/material.dart';import 'package:flutter_screenutil/flutter_screenutil.dart';class MemberPage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: T.
2021-04-28 11:50:13
1005
1
原创 greendao的使用
一.准备工作在工程的build.gradle文件中添加repositories { ... mavenCentral() } dependencies { ... classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0' }在项目的build.gradle文件中添加apply plugin: 'org.greenrobot.greendao'andr...
2021-04-20 08:32:43
225
原创 springboot整合mybatis使用
1.新建一个project新建项目时选择Spring Initializer。2.创建项目文件结构、选择jdk版本一般选择Java version83.选择项目需要的依赖首先点击web选择spring web,再点击SQL选择MySQL driver 等,然后再一路next到新建完成。4.查看项目新建完成后的pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http:..
2021-03-25 16:10:54
368
2
原创 mysql数据库关联查询
在数据库的查询中,多表查询连接主要有以下四种情况: INNER JOIN(内连接):如果表中有至少一个匹配,则返回行 【在语法中可以省略INNER关键字】 LEFT JOIN(左连接):从左表返回所有的行,如果右表中没有匹配,对应的列返回Null RIGHT JOIN(右连接):从右表返回所有的行 ,如果左表中没有匹配,对应的列返回Null FULL JOIN(全连接):只要其中一个表中存在匹配,则返回行(即结合左连接和右连接的结果)这里主要要理清两个问题:1)以哪个表...
2021-03-25 14:29:56
157
原创 glide设置圆角
package com.jiasheng.xszj.view.widget;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapShader;import android.graphics.Canvas;import android.graphics.Matrix;import android.graphics.Paint;import android.gra.
2021-03-11 19:32:31
672
原创 android自定义view几种方式
自定义View的实现方式有以下几种:组合控件,继承控件,自绘控件详细可分为:自定义组合控件,继承系统View控件,继承系统ViewGroup,自绘View控件,自会ViewGroup控件1. 自定义组合控件组合控件就是将多个控件组合成一个新的控件,可以重复使用。1.编写布局文件2.实现构造方法3.初始化UI4.提供对外的方法5.在布局当中引用该控件6.activity中使用示例:中间是title的文字,左边是返回按钮,右边是一个添加按钮//因为我们的布局采用Re.
2021-03-08 09:33:48
492
原创 okhttp原理
1、okhttp工作的大致流程2、okhttp中的连接3、Dispatcher和线程池4、OkHttp中的设计模式5、OkHttp的优势1、okhttp工作的大致流程1.1、整体流程(1)、当我们通过OkhttpClient创建一个Call,并发起同步或异步请求时; (2)、okhttp会通过Dispatcher对我们所有的RealCall(Call的具体实现类)进行统一管理,并通过execute()及enqueue()方法对同步或异步请求进行处理; (3)、execute(
2021-03-06 09:27:06
2583
原创 安卓的四大组件
activity、service、content provider、broadcase receiverAndroid 开发的四大组件分别是:活动(activity),用于表现功能;服务(service),后台运行服务,不提供界面呈现;广播接受者(Broadcast Receive),勇于接收广播;内容提供者(Content Provider),支持多个应用中存储和读取数据,相当于数据库。Activity(1)定义:Activity是Android的四大组件之一。是用户操作的可视化界面;它为用户提供了
2021-03-05 09:38:37
3360
2
原创 进程、单线程、多线程使用以及原理
cpu在线程中做时间片的切换。其实真正电脑中的程序的运行不是同时在运行的。CPU负责程序的运行,而CPU在运行程序的过程中某个时刻点上,它其实只能运行一个程序。而不是多个程序。而CPU它可以在多个程序之间进行高速的切换。而切换频率和速度太快,导致人的肉眼看不到。每个程序就是进程, 而每个进程中会有多个线程,而CPU是在这些线程之间进行切换。了解了CPU对一个任务的执行过程,我们就必须知道,多线程可以提高程序的运行效率,但不能无限制的开线程。创建线程的方式:继承Thread类;实现Runnable接
2021-03-05 09:18:53
288
1
原创 String StringBuffer StringBuilder的区别
一、Java String 类——String字符串常量字符串广泛应用在Java 编程中,在 Java 中字符串属于对象,Java 提供了String 类来创建和操作字符串。需要注意的是,String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。我们来看一下这张对String操作时内存变化的图:我们可以看到,初始String值为“hello”,然后在这个字符串后面加上新的字符串“world”,这个过程是需要重..
2021-03-03 11:09:52
78
原创 MVC MVP MVVM原理和区别
MVC是指Modle,View和Controller,将界面,业务逻辑和控制器分开,是一种低耦合的设计方式,适用于简单的应用开发。这种设计模式最简单,但问题有三:(1)、View和Model相互可见,耦合度高。(2)、如果程序复杂,那么Activity这个Controller将十分繁琐复杂,不容易维护。(3)、Activity角色模糊,View或Model。MVP:P是指Presenter,即实现者,功能与Controller类似。Presenter实质为Interface类的运用,用于降低M、V
2021-03-02 10:44:40
1119
原创 堆栈的理解
栈内存栈内存首先是一片区域,存储的是局部变量。局部变量分为两种情况:1.方法中定义的变量; 2.for循环中定义的变量,而且是先加载函数再进行局部变量的定义。所以是方法先进栈,然后再定义变量。量也有自己的作用域,一旦离开自己的做哦有那个域,变量就会被释放。栈内存的更新速度很快,因为局部变量的生命周期都很短。堆内存堆内存存储的是数组和对象,凡是在new里面建立的对象都是存在于堆中,因而堆中存放的都是实体(对象)。实体用于封装数据,而且一般都要封装多组数据(实体中有多个属性)。一旦某个数据消失了,对这个实
2021-03-02 10:43:17
91
原创 Activity 的四种启动模式
standard 标准模式: 每次启动一个 Activity 都会重新创建一个新的实例,不管这个实例是否已经存在,此模式的 Activity 默认会进入启动它的 Activity 所属的任务栈中;singleTop 栈顶复用模式: 如果新 Activity 已经位于任务栈的栈顶,那么此 Activity 不会被重新创建,同时会回调 onNewIntent方法,如果新 Activity 实例已经存在但不在栈顶,那么Activity 依然会被重新创建;singleTask 栈内复用模式: 只要 Acti
2021-03-02 10:42:04
93
原创 安卓性能的优化
在 CPU 和内存上使用不合理或者耗费资源多时,就会碰到内存不足导致的稳定性问题、CPU 消耗太多导致的卡顿问题等。1.卡顿优化android应用启动慢,使用时经常卡顿,是非常影响用户体验的,应尽量避免出现。卡顿的场景有很多,按场景可以分为4类:UI绘制、应用启动、页面跳转、事件响应,如图:这4种卡顿场景的根本原因可以分为两大类:* 界面绘制。主要原因是绘制的层级深、页面复杂、刷新不合理,由于这些原因导致卡顿的场景更多出现在 UI 和启动后的初始界面以及跳转到页面的绘制上。
2021-03-01 11:19:28
166
原创 okhttp的优点
1.谷歌官方在6.0以后再android sdk已经移除了httpclient,加入了okhttp.2.okhttp支持SPDY(是谷歌基于TCP的应用层协议,用于最小化网络延迟,提升网络速度,是对http的一种增强),允许所有的访问统一主机的请求共享一个socket。3.利用连接池减少请求延迟4.支持GZIP压缩5.响应缓存减少重复的请求,利用响应缓存来避免重复的网络请求.即便是网络出现问题时,okhttp依然起作用.它将从常见的链接问题当中回复.如果你的服务器有多个IP地址,当地一个失败
2021-03-01 11:18:33
2921
6
原创 Mac版Android Studio Git 的配置以及提交到仓库
1.下载git到你的电脑上,下载地址:http://git-scm.com/downloads并安装.2.studio菜单栏-File - Other Setting - Default Setting…-Version Control - 下三角点开 - 就可以看到Git - 点击Test - 弹出窗口“Test Successfully“.3.初始化git项目(git init):VC
2017-11-30 10:24:37
241
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人