自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 投资银行感悟

投资银行感悟目录:1.公司上市1.1:公司上市简介1.2:承销商简介1.3:公司上市市值多少1.4:公司上市融资多少1.5:承销商的佣金和期权2.华尔街对上市公司的影响3.微软收购雅虎失败的故事4.科普一些名词总结知道了公司为什么要上市,承销商是干嘛的如何赚钱,上市公司如何选择承销商,市值高低和融资多少的利弊关系,华尔街对上市公司的影响,以至于...

2020-02-01 20:27:24 813 1

原创 Android Lifecycle使用

一:Lifecycle的定义Lifecycle是具有生命周期感知能力的组件。也就是说,我们能在Activity或Fragment的生命周期发生变化的时候得到通知。二:为什么使用lifecycle比如,我们往往会在Activity的各种生命周期方法中执行特定的方法,比如广播的注册和解绑,EventBus的注册和解绑等。如果我们把很多这种需要跟生命周期相关的逻辑代码都放在Activit...

2019-11-19 10:44:40 1087 1

原创 Android 自定义gradle插件并上传到github

文章目录1、新建Android项目2、新建Module3、在Module下面建立两个文件3.1、建立UploadApkPlugin.groovy和UploadApkPlugin.properties两个文件。3.2、UploadApkPlugin.groovy代码3.3、UploadApkPlugin.properties代码4、 在 Android Studio 里面配置 Jitpack 插件5、修改插件项目的build.gradle文件6、上传项目到github(1)新建 repository(2)登录

2019-11-02 09:59:35 963 1

原创 内存管理和内存泄漏

文章目录一、内存管理1、Java内存分配策略2、Java内存管理3、可达性分析4、四种引用二、内存泄漏1、什么是内存泄漏2、常见的内存泄漏1)资源对象未关闭2)单例造成的内存泄漏3)Handler 造成的内存泄漏4)非静态内部类创建静态实例造成的内存泄漏一、内部类和静态内部类二、为什么静态内部类不会持有外部类的引用?三、静态内部类什么时候被回收呢?5)匿名内部类一、内存管理1、Java内存分配策略Java程序运行时的内存分配策略有三种。静态方法区:主要存放静态static数据和常量。这块内存在程序编

2019-11-02 09:53:12 705

原创 数据分析介绍

一、数据分析应用场景1.通过数据分析,可以更好地了解用户画像,为企业做留存率、流失率指标分析,进而精细化产品运营;2.可以预测比特币的走势;3.信用卡反欺诈、自动屏蔽垃圾邮件(能够通过数据判断是否是信用卡诈骗、垃圾邮件)4.通过数据分析可以告诉政府该如何智慧地管理交通,做城市规划5.通过消费数据分析,告诉企业什么时间生成什么产品,以最大化满足用户的需求6.通过生活大数据,可以告诉企业该如何选址等二、对数据的理解互联网上半场是粗狂运营,因为有流量红利就不要考虑细节。互联网下半场,精细化

2019-11-02 09:51:10 812

原创 Android 自定义gradle插件并上传到本地maven

目录1、新建Android项目2、新建Module3、在Module下面建立两个文件3.1、建立UploadApkPlugin.groovy和UploadApkPlugin.properties两个文件。3.2、UploadApkPlugin.groovy代码3.3、UploadApkPlugin.properties代码4、修改插件项目的build.gradle文件,生成插件jar包。5、引入本地maven库6、引入插件7、查看是否引入成功直接上实现过程1.

2019-10-27 16:22:36 463

原创 Android基础之Gradle

本文的意义:理解 Gradle,并了解Gradle 在 Android 的构建过程中的作用。一:Gradle简介Gradle是一个自动化项目构建工具,它使用基于Groovy的语言来声明项目配置,不是传统的XML。Android项目中包含以下gradle文件build.gradle:build.gradle文件有两种类型。一种是project;一种是module,module可能...

2019-09-07 11:51:41 242

原创 Android之ARouter使用和原理解析

ARouter使用和原理解析github:https://github.com/alibaba/ARouter本文参考:https://github.com/Xiasm/EasyRouter/wiki一:ARouter介绍组件化逐渐成为热潮,组件化可以使业务逻辑高度解耦、模块分离,提高开发效率,更有利于多人协作并行开发。组件化中两个单向依赖的module之间互相启动对方的Ac...

2019-08-15 16:16:11 5370 1

原创 Android模块化和组件化开发

目录一.模块化介绍1.1:模块化简介1.2:模块化和组件化的区别1.3:模块化的优点1.4:模块化的层级介绍二.如何实现组件化2.1:实现模块化需要解决的问题2.2:各个问题的解决方法一:模块化介绍(1)对于简单的小项目,大多都采用的是单一工程,独立开发。由于项目不大,编译速度及维护成本这些也在接受范围之内。而对于一个大型App产品,多人合作、单一工程...

2019-07-24 08:59:30 4402

原创 Android系统版本适配

1.Android系统发展简史2.Android 6.0版本适配3.Android 7.0版本适配4.Android 8.0版本适配5.Android 9.0版本适配

2019-06-30 12:52:18 474

原创 Mac 电脑配置Flutter

具体步骤是:1.安装fluttersdk,我们可以通过git的方式从github中clone下fluttersdkgit clone -b beta https://github.com/flutter/flutter.git2.在bash_profile文件中进行环境配置2.1.在mac电脑上,切换到用户名下文件夹。即:我们在终端命令上,输入cd ~就会切换到我们的用户名下的...

2019-06-10 22:49:44 900

原创 数据分析

目录一、数据分析1.数据分析应用场景2.数据分析可以分成三个重要的组成部分:3.如何学习4.数据分析基本概念5.数据预处理二、数据采集1.数据采集框架:2.Requests访问页面三、数据变换1.数据变换在数据分析中的角色2.数据规范化3.数据规范化、归一化、标准化区别4.数据规范化的使用场景是什么呢?5:最小-最大规范化(Min-max规范化)6.Z-Score规范化7.按小数定标规范化四、数据挖掘1.数据挖掘简介2...

2019-05-30 23:30:30 3634

原创 算法总结

目录一、决策树二、朴素贝叶斯三、SVM支持向量机四、KNN1.KNN工作原理2.距离如何计算五、K-Means1.K-Means简介:2.K-Means工作原理3.K-Means总结六、EM算法-最大期望算法(一)EM算法理解:(二)EM和K-Means的异同:七、关联挖掘规则(一)关联规则介绍(二)学习目的(三)概念(四)Apriori算法的工作原理八、PageRank1.PageRank的应用场景2.PageRank需.

2018-12-16 19:56:07 856

原创 Vue引用百度地图的地点输入提示功能

1.npm i vue-baidu-map --save 这个引用bmap2.在index.html中引入:<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=yourak"></script>3.代码<template> <div&g

2018-11-16 20:20:43 3310

原创 Android基础之屏幕适配

一:Android屏幕适配的基本概念介绍(1)屏幕尺寸屏幕尺寸:手机对角线的物理尺寸。单位是英寸(inch),1英寸=2.54cm。Android手机常见尺寸5寸、5.5寸、6寸。(2)屏幕分辨率屏幕分辨率:手机在横向、纵向的像素点数总和。px:是屏幕的像素点,1px=1像素点。UI设计师设计图一般会以px作为统一的计量单位。比如我们的手机分辨率1920*1080,就是长1...

2018-11-11 21:19:37 456 1

原创 MySql总结

目录一、索引二、数据库通过函数获取id三、常用sql语句(一)查询语句(二)插入(三)复制(四)count(五)嵌套子语句(六)Join(七)其他一、索引索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。查询的时候,先通过索引找.

2018-10-07 11:12:13 326

原创 PyCharm使用技巧及常用快捷键

常用快捷键1、Ctrl + Enter:在下方新建行但不移动光标;2、Shift + Enter:在下方新建行并移到新行行首;3、Ctrl + /:注释(取消注释)选择的行;4、Ctrl + Alt + L:格式化代码(与QQ锁定热键冲突,关闭QQ的热键);5、Ctrl + Shift + +:展开所有的代码块;6、Ctrl + Shift + -:收缩所有的代码块;7...

2018-08-16 10:41:15 159025 22

原创 RxJava

一、RxJava总结(一)RxJava简单介绍RxJava基于观察者模式,创建被观察者并生产事件(数据);创建观察者Observer,并定义响应事件(数据)的行为;通过Subscribe订阅方法连接观察者和被观察者。当产生数据后,观察者或获得数据的响应。(二)RxJava核心思想1、观察者模式RxJava基于观察者模式,将观察者和被观察者解耦。2、模板方法模式一、Observable的subscribe方法1)Observable是抽象父类,基于模板方法模式。在Observ.

2018-07-19 09:58:54 657

原创 Android 动画

目录一:动画简介1、动画分类2、补间动画和属性动画的区别(1)补间动画(2)属性动画3、ValueAnimator类和ObjectAnimator区别4、使用动画的注意事项:五、插值器和估值器二:帧动画:FrameAnimation1、帧动画定义2、帧动画使用(1)将动画资源放到 drawable文件夹里(2)设置 & 启动动画步骤1:创建帧动画xml文件步骤2:使用动画三:补间动画:TweenAnimation1、补间动画定义.

2018-05-11 17:25:45 443

原创 Activity启动流程

为了简化理解难度,本文代码进行了简化处理。代码以API26为准。目录二、LauncherActivity三、Activity四、Instrumentation五、ActivityManagerService六、ActivityStarter七、ActivityStackSupervisor八、ActivityStack九、ActivityStackSupervisor十、ActivityManagerService十一、Process十二、ZygotePro.

2018-02-03 11:02:56 3639

原创 Android打包过程

一、Android打包过程简述首先使用AAPT工具将资源文件编译为R.java文件,使用AIDL工具将所有aidl文件生成相应的java文件。使用javac把项目中所有java文件比如R.java文件、aidl生成的java文件和java代码编译成class文件。然后使用dex工具将所有class文件转换成Dalivk可执行的dex文件,使用ApkBuilder将所有文件打包生成未签名的APK文件。对apk文件进行签名,使用ZipAlign优化apk文件,减少apk在设备上的运行内存。二、Apk各.

2018-01-11 14:17:17 2465 1

原创 数据结构总结

文章目录一、开篇二、常用的数据结构和算法三、常用概念1、线性表2、动态数据结构3、什么是查询四、数组1、数组定义2、数组的优缺点3、数组怎么根据下标随机访问的?4、为何数组插入和删除低效5.用数组还是容器?什么是动态扩容?提高删除效率:6、为什么数组要从 0 开始编号?五、链表一、链表的定义二、链表的优缺点三、常用链表:单链表、循环链表和双向链表1.单链表2.循环链表3.双向链表4.双向循环链表四、数组和链表对比五、链表简易代码六、栈一、栈的定义二、为什么需要栈?三、栈的简易代码四、栈的数组实现五、栈的链表

2018-01-04 14:32:40 16934

原创 数据挖掘算法之使用朴素贝叶斯进行文本分类

1. 概率论相关概念介绍 2. 贝叶斯法则和朴素贝叶斯 3. 文本分类

2018-01-02 11:53:40 3314

原创 Android多线程编程

一:线程简介 在操作系系统中,线程是操作系统调度的最小单元。线程是一种受限的系统资源,线程不可能无限制地产生,并且线程的创建和销毁都会有相应的开销。如果在一个进程中频繁地创建和销毁线程,显然这不是高效的做法。 正确的做法是:创建线程池,一个线程池中会缓存一定数量的线程。通过线程池可以品便因为频繁创建和销毁线程所带来的系统开销。 本文简单的介绍AsyncTask、In...

2017-11-07 20:26:17 1218

原创 APP启动速度优化

一:应用启动类型应用启动类型分为三种:冷启动、热启动、温启动1.1:冷启动简介:从点击应用图标到开始创建应用UI界面完全显示且用户可操作的全部过程。特点是耗时最多,是APP启动速度的衡量标准。冷启动流程分析Click Event -> IPC -> Process.start -> ActivityThread -> bindApplication -> LifeCycle -> ViewRootImpl点击应用,加载并启动APP,创建APP进程。接下来执行A

2017-07-31 10:54:14 554

原创 Android性能优化

一、性能优化分类APP性能优化可以分为如下几方面APP启动速度优化、内存优化、包体积优化、布局优化和稳定性优化。二、APP启动速度优化一:应用启动类型应用启动类型分为三种:冷启动、热启动、温启动(1)冷启动简介:从点击应用图标到开始创建应用UI界面完全显示且用户可操作的全部过程。特点是耗时最多,是APP启动速度的衡量标准。冷启动流程:Click Event -> IPC -> Process.start -> ActivityThread -> bindApplica

2017-07-27 13:56:44 4353

原创 Glide

????周鑫一、Glide总结Glide加载流程可以分三步步骤一、Glide.with1、调用Glide.with方法获得RequestManager实例。这一步主要实例化glide,并对glide一些参数进行初始化和解析我们自定义GlideModule。其次就是管理glide请求。With有多个重载方法,可以使用context、Activity、Fragment。如果是ApplicationContext,那么会返回单例RequestManager。如果是Activity或Fragment,会创

2017-07-24 11:52:22 424

原创 设计模式之代理模式

一:定义代理模式是常用的结构型设计模式之一,代理模式也叫委托模式。当客户端无法直接访问目标对象或者客户端访问目标对象存在困难时可以通过一个代理对象作为中介,让客户端来间接访问目标对象。为了保证客户端使用的透明性,所访问的真实目标对象与代理对象需要实现相同的接口。也可以这样理解:当两个类需要通信时,引入第三方代理类,将两个类关系解耦,客户端只需要了解代理类的即可。二:代理模式角色说明Subject(抽象主题类):接口或者抽象类,作用是声明真实主题类与代理类的共同的方法,这样任何使用真实主题类的地方都可

2017-07-19 01:55:30 1101

原创 设计模式总结

文章目录前言:设计模式总结:一、✔️设计模式简介1、设计模式的目的2、设计模式总结3、设计模式原则1) 单一职责原则2) 接口隔离原则3) 依赖倒置原则4) 里氏替换原则5) 开闭原则6) 迪米特法则7) 合成复用原则4、如何 在Android源码寻找设计模式-----创建型设计模式-----二:✔️单例模式1、单例模式定义2、为什么使用单例3、单例模式的实现1)饿汉模式2)懒汉模式3)双重检查模式(DCL)4)静态内部类单例模式6、枚举单例4、补充5、使用静态方法or单例模式三、✔️工厂模式一、工厂模式小

2017-07-07 14:50:47 12573

原创 LeakCanary

一、总结[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dPzeaHgC-1611411403417)(https://uploader.shimo.im/f/V9gp69g4D0TNV3Oc.png!thumbnail?fileGuid=Pk8VCdxhDKv8qkKh)]总结:1、在LeakCanary初始化的方法中,我们调用了application的registerActivityLifecycleCallbacks方法,在这里面可以监听到activity的生命周期

2017-06-20 10:20:31 374

原创 EventBus.

一、EvenntBus总结1、注册1)通过getDefault获得EvenntBus的单例,在这里面主要做了对象的初始化。主要是subscriptionsByEventType,这是map集合。key是eventType事件类型。value是Subscription集合。Subscription是订阅信息对象,里面存储了 subscriber订阅者和SubscriberMethod。SubscriberMethod里面有method、threadMode、eventType、priority、stic

2017-06-12 17:36:46 591

原创 Retrofit

一、Retrofit请求流程1、创建网络请求接口,定义请求数据方法定义请求网络数据的方法,用注解的方式声明网络请求的方法和参数。这些方法和参数会在RequestFactory的build方法中去解析,将解析获得的数据会存储到RequestFactory的对象中。这些数据用来创建Okhttp的request请求。2、创建retrofit1)用建造者模式创建Retrofit对象,建造者模式的作用是将复杂对象的构建与表示分离,帮助用户在不需要了解创建对象细节的情况下,依然可以创建复杂的对象。2)在Ret

2017-06-09 14:44:28 321

原创 OKHttp源码解析

一、总结一、网络请求流程OkHttp分同步网络请求和异步网络请求。第一步:通过建造者模式来创建OkHttpClient对象。会创建默认的参数。我们也可以在这里传入自己配置的构建参数,比如设置超时时间、自定义拦截器、❌创建OkHttpClient客户端对象,OkHttpClient通过建造者模式来封装OkHttpClient初始化需要的参数,主要进行了dispatcher、connectionPool(连接池)等创建。❌第二步:通过建造者模式创建了Request,这这里面主要封装了。创建.

2017-05-17 10:57:24 447

原创 Android5.0新特性以及RecyclerView的使用

Android 5.0 Lollipop([ˈlɒlipɒp]n. 棒棒糖) 是 Google 于 2014 年 10 月 15 日(美国太平洋时间)发布的全新 Android 操作系统。 一:现在咱们讲解Android开发者需要常用到的知识。 1.1.全新的Material Design设计风格,因为篇幅太长,会在本文中详细讲解 1.2.替换ListView和GridView的Recyc...

2017-05-08 11:26:23 1562

原创 git 一些比较常用的命令

分布式控制系统 git mkdir 创建文件cd 跳转pwd 查看当前目录git init 把这个目录变成git可以管理的仓库如果没有看到.git是因为隐藏了。ls-sh可以看见git add readme.txt 把文件添加到仓库git commit -m “readme.txt commit” 把文件提交到仓库 后面是备注git status 查看当前仓库的状态 git diff 查看修改

2017-05-02 13:50:04 3648

原创 Android进程间通信之AIDL

IPC是Inter-Process Communication的缩写,含义为进程间通信或跨进程通信,是指两个进程之间进行数据交互的过程。这里介绍AIDL来进行进程间通信的流程,分为服务端和客户端两个方面。 一:服务端 1.1:创建一个Service来监听客户端的连接请求; 1.2:创建一个AIDL文件,将暴露给客户端调用的接口在这个AIDL文件声明; 1.3:最后,在Service中实现这...

2017-05-02 13:48:34 1544

原创 Android5.0新特性之MaterialDesign

MaterialDesign英文官方文档:http://www.google.com/design/spec/material-design/MaterialDesign极客学院文档:http://wiki.jikexueyuan.com/project/material-design/谷歌在推出Android5.0之际,推出全新的Android Design Support Library。现在,咱们介绍一下常用的Material Design设计风格的控件,本文主要讲解一下几个方面的内容;1.使用

2017-04-24 16:48:04 1864

原创 Android WebView使用简介

本文目录1.加载不同url的webview的方式2.对返回键的监听,实现网页后退3.如何防止WebView内存泄漏4.WebSetting-对WebView进行配置和管理5.Android调用js6.js调用Android7.WebView的优化源码见文末一:加载WebView(1)加载一个网页 webView.loadUrl("https://www.baidu.com/");(2)加载app包中的本地html页面 webView.loadUrl("file:///andro

2017-04-21 14:12:29 732

原创 Android自定义view

一:简单自定义View示例 (1):在values目录下创建自定义属性的XML,比如attrs.xml;注意:这个文件名没有什么限制,可以随便取名字;本文是在values目录下的attrs.xml<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="CircleImageView"> <attr name="circle_col...

2017-04-11 14:06:28 1554

原创 View基础知识总结

目录一、自定义View分类二、View的绘制流程三、onMeasure(1)onMeasure方法简介(2)MeasureSpec简介(3)getMeasuredWidth()与getWidth()区别(4)获取子控件margin方法三、onLayout四、View的位置参数​五、View的滑动六、自定义view滑动冲突1.外部拦截法七、Paint常用方法八、Canvas1、常用的基本方法2、 drawPath绘制路径(1)直线路径.

2017-04-11 09:19:17 4518

空空如也

空空如也

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

TA关注的人

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