- 博客(91)
- 资源 (4)
- 收藏
- 关注
原创 《复盘》分享
前言复盘至关重要,通过复盘总结经验教训,尤其是失败的事情,要认真,不给自己留任何情面地把这个事想清楚,把事情想明白,然后就可以谋定而后动了。 —— 柳传志1、复盘的由来复盘,是从围棋中来的一个术语。围棋中的本义是,当我们下完一盘棋后,要重新在棋盘上走一 遍, 看看哪些棋子下得好,哪些棋子下得不好,哪些地方可以有不同甚至是更好的下棋方法,等等。这个重新走一遍并且思考的过程,就称为复盘,也称为复局。2、为什么复盘复盘可以避免我们犯同样的错误,找到和掌握规律,帮助
2021-01-19 15:18:11
1115
2
原创 Flutter环境搭建
一、安装资料flutter官网flutter中文网可以去官网下载flutter,也可以通过git,下面俩个地址都可以git clone -b alpha https://github.com/flutter/flutter.gitgit clone https://github.com/flutter/flutter.git下载完二、配置环境变量1....
2019-06-19 09:40:14
303
原创 Android 注解的应用
Java中的定义 注解是JDK5 之后的新特性,是一种特殊的注释,它为我们在代码中添加信息提供了一种形式上的方法,使我们可以在稍后某个时候非常方便的使用这些数据。 官方文档 An annotation is a form of metadata, that can be added to Java source code....
2018-08-31 18:59:22
375
原创 Android 内存管理
Android是一个基于Linux实现的操作系统。但对于Linux内核来说,Android也仅仅只是一个运行在内核之上的应用程序,与其他运行在内核之上的应用程序没有任何区别。所以Android需要一套机制管理运行在Linux进程中的APK应用程序。Android内存管理包含两部分,一部分是Framework对内存的管理,一部分是Linux内核对内存管理,这两部分共同决定应用程序的生命周期。本文主要
2018-01-15 15:13:20
375
原创 Java虚拟机(一)体系结构和执行原理
前言什么是Java虚拟机?虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。1.Java虚拟机概要Ja
2018-01-10 20:01:14
616
原创 Activity任务栈和启动模式
任务栈android的任务栈Task,是一个栈结构用来放置Activity实例的容器。和数据结构栈一样,具有先进后出的特性。 1. 我们每次打开一个新的Activity或者退出当前Activity都会在一个称为任务栈的结构中添加或者减少一个Activity组件,因此一个任务栈包含了一个activity的集合, android系统可以通过Task有序地管理每个activity,并决定哪个Activ
2017-12-01 15:42:14
314
原创 Android性能优化之电量优化
1.电量优化 电量优化首先我们要想到怎么去优化,要优化就要分析什么功能以及那些操作最耗电。1.1 Battery Historian Google提供了一个开源的电池历史数据分析工具 – Battery Historian。喜欢的同学可以去学习。Google在Udacity上发布了Android性能优化的在线课程。1.1.1 安装 根据Battery Historian在github上的rea
2017-09-22 16:48:03
840
原创 如何快速学习一门新技术
如何快速学习一门新技术对于技术而言,分为俩类:语言和系统。 经常接触的语言:C、Java、Android、Objective-C。 经常接触的系统:Android、iOS、windows、Mac。语言 1.语言层面:语言具有相通性。如果精通一门语言,可以快速的掌握另一种语言。类型变量运算符循环控制语句(for、if、while、swicth)字符串操作集合(数组、android集合
2017-09-18 14:29:10
1193
原创 iOS探索--TableView的使用
一、简介 UITableViewStylePlain和UITableViewStyleGrouped。这两者操作起来其实并没有本质区别,只是后者按分组样式显示前者按照普通样式显示而已。大家先看一下两者的应用: 二、代码示例 1.TableViewController.xib 配置TableView,选择View下面的TableView鼠标右键,看到dataSource和delegat
2017-08-31 18:21:41
501
原创 iOS探索--页面控制和跳转
一、页面控制 在ios项目中关联UI和代码界面有俩种方法Main.storyboard和xib。当然有些人说代码内也可以定义UI,再此不细说。Main.storyboard重量级,适合管理多个ViewController。xib的比较轻量级。storyboard和xib区别:一个工程中可以有多个xib文件,一个xib文件对应着一个视图控制器和多个视图。而使用storyboard时,一个工程只需要一
2017-08-16 15:49:07
4968
原创 iOS探索--协议
一、协议介绍 OC中的协议就相当于java语言中接口的作用。协议不提供任何实现,协议体现的规范和实现分离的设计方法。二、示例 和定义类不同,定义协议不再使用@interface、implementation关键字,而是使用@protocol关键字,定义格式如下:@protocol 协议名 <父协议1, 父协议2>{ 方法定义...}接下来定义一个协议。HOutput.h 在定义
2017-08-11 13:23:17
349
原创 iOS探索--面向对象三大特征封装、继承、多态
前言 面向对象三大特征封装、继承、多态,是任何存在面向对象特征语言通用的特性。一、封装 1、概念:就是将对象的状态信息隐藏在对象的内部,不容许外部程序直接访问对象内部信息,可以通过该类提供的方法来实现对内部信息的操作和访问。 2、访问控制符 既然要封装,肯定就有权限的一些限制,OC中访问控制符有@private、@package、@peotected、@public,四个的区别: 代码
2017-08-10 18:12:50
578
原创 iOS探索--点语法和对象初始化
一、点语法 点语法是一种非常简单的用法。用点语法访问属性和对属性赋值,其本质依然是使用set和get方法。 二、点语法实例 新建一个类HHCard,编写接口文件 在定义接口方法时,这里有一个关键字@property。代表合并set和get方法。如果某个类定义了一个成员变量, 并提供了set、get方法,那么可称为定义了一个属性。采用@property合成存取方法,不仅会合成成对的set和
2017-08-10 11:46:41
771
原创 iOS探索--类的定义
一、前言 C和OC最大的区别就是面向对象编程。OC作为面向对象编程语言,那么肯定具备面向对象特征。面向对象程序设计过程中有俩个重要概念:类(class)和对象(object,也称为实例instance),类是某一批对象的抽象,对象才是一个具体存在的实体。OC中定义类需要分俩个步骤:接口部分和实现部分。接口部分定义该类包含的成员变量和方法;实现部分为该类的方法提供实现。二、实例 1.创建HHPer
2017-08-08 18:12:20
942
1
原创 iOS探索--iOS初探知识点总结
一、开端 这篇文章我们来演示新建第一个iOS项目能了解到那些知识点。开端当然是我们全世界通用的惯例Hello World。二、创建Hello World 用xcode创建一个Hello World程序: 点击Next: 点击Next: 程序到这里就创建完成了。接下来我们创新一个UILable,用于展示Hello World。UILable类似于android中的TextView
2017-08-04 16:03:11
631
原创 NDK环境搭建和JNI示例详解
一、概述 JNI是Java Native Interface的缩写,提供一些API实现了Java和C&C++语言的通信。以下示例开发用的工具是android stduio。二、NDK环境配置 1.配置gradle.properties文件android.useDeprecatedNdk=true2.下载NDK文件配置local.properties文件。如果NDK已经下载,直接配置使用就可以
2017-07-21 10:02:02
502
原创 IOS进入DFU模式通过iTunes恢复系统
iPhone开机遇到白苹果时;iPhone开不了机时;当iPhone运行卡顿时等;我们可以尝试iphone恢复。1.手机连接电脑 打开电脑的iTunes,手机连接上电脑。确保手机电量充足。 2.进入DFU模式 进入DFU模式通俗讲就是进入恢复模式。 操作:同时按住电源键和 HOME键10秒,然后仅仅松开电源键,继续按住HOME键,再等待10秒。iTunes识别出现,D
2017-07-19 10:13:38
13610
原创 iOS探索--IOS学习路线总结
一、前言 移动互联网的迅速发展,产生了一批有一批的互联网巨头,由此作为开发者对于俩端技术的了解,以及俩端在使用和开发过程中的利好会进行分析。这篇文章主要针对我当时对IOS开发的基础知识学习的一个总结。二、基本知识概括 学习一门语言,首先要了解这门语言包含哪些知识体系,这样才会方便我们学习。下面是我简单总结的学习路线知识图。 1.c语言基础 我想对于c语言大家都非常了解。大学中必须学习的一门课
2017-07-03 17:48:53
597
原创 Session&Cookie详解
一、Cookie Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户的浏览器,当用户使用浏览器去访问服务器中的web资源时,就会带着各自的数据去。这样web资源处理的就是用户各自的数据。Cookie叫客户端技术,是因为数据存储在客户端。原理逻辑如图: 用户点击超链接购买了一个商品。保存用户购买的商品,以便于用户点击结账servlet时,结账的servlet可以得到用户
2017-06-29 16:23:09
584
原创 Tomcat服务器结构以及web应用部署
1.Tomcat目录结构 通过结构图可以看出每个文件夹对应的配置项。一个web应用由多个静态web资源和动态web资源组成,组成web应用的这些文件通常我们会使用一个目录组织,这个目录组织称之为web应用所在目录。web应用开发好后,若想共外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚拟目录的映射。2.web虚拟目录的映射a.直接在conf文件夹下server.xml中配
2017-06-23 10:38:14
4185
原创 enum构造方法解析
1.enum构造方法enum Structure{ One("testOne"),Two("testTwo"),Three("testThree"); private String value; private structure(String value){ this.value = value; } public String g
2017-06-21 17:24:47
965
原创 dalvik和Jvm的区别
一、Dalvik概要 在Android的体系框架中有一部分叫做Android Runtime,即Android运行时环境,Android Runtime环境包括了两个部分,第一部门是Android的核心类库,第二部分是Dalvik虚拟机。Dalvik虚拟机对内存具有高效的使用,以及在低速CPU上运行具有高性能。 依赖于底层Posix兼容的操作系统,它可以简单的完成进程隔离和线程管理。每一个And
2017-06-06 15:38:00
1124
原创 设计模式之装饰模式
1.简介 概念:装饰模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。逻辑点 抽象组件(Component):给对象动态的添加职责。 ConcreteComponent:组件具体实现类。 抽象装饰者(Decorator):继承Component,从外类来拓展Component类的功
2017-05-26 17:37:09
488
原创 设计模式之工厂模式
概念:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。工厂模式三个逻辑点: 工厂类(Factory):工厂模式的核心,负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。 抽象产品类(IProduct):工厂模式创建的所有对象的父类,它负责描述所有实例所共有的公共接口。 具体产品类(Product):
2017-05-25 17:45:25
360
原创 设计模式之建造者模式
1.简介 概念:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。概念图 建造者模式四大要素:Dirextor: 指挥者类,负责调用适当的建造者来组建产品,用于统一组装流程。Builder:抽象Builder类,引入抽象建造者的目的,是为了将建造的具体过程交与它的子类来实现。这样更容易扩展。一般至少会有两个抽象方法,一个用来建造产品,一个是用来返回产品。规范产品的
2017-05-24 16:21:40
432
原创 设计模式之单例模式
单例模式是我们在开发过程中最经常使用的一种设计模式。 概念:保证一个类仅有一个实例,并提供一个访问它的全局访问接口。单例模式结构图: 1.饿汉模式public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){ }
2017-05-24 14:46:13
315
原创 设计模式六大原则
1.单一职责原则(SRP,Single Responsibility Principle) 概念:一个类只负责一个功能领域中的相应职责。或可以定义为:就一个类而言,应该只有一个引起它变化的原因。简单的讲就是我们不要让一个类承担过多的职责,一个类从大到模块,小到方法承担的职责越多,它被复用的可能性就越小,就相当于把这些职责耦合在一起。当其中一个职责发生变化,可能会影响到其他职责的正常运行工作。所
2017-05-24 11:00:47
397
原创 android 网络框架之okhttp3
1.在android studio配置添加权限<uses-permission android:name="android.permission.INTERNET"/>gradle配置compile 'com.squareup.okhttp3:okhttp:3.2.0'compile 'com.squareup.okio:okio:1.7.0'2.异步get请求和post请求get请求priva
2017-05-17 16:33:40
459
原创 HttpClient与HttpURLConnection分析
1.HttpClient Android SDK中包含了HttpClient,在Android6.0版本直接删除了HttpClient类库,如果仍想使用则解决方法 是在android studio相应的module下的build.gradle中加入 android { useLibrary 'org.apache.http.legacy' }HttpClient的G
2017-04-21 16:21:00
1115
原创 HTTPS之SSL/TLS协议分析
一、简介 HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,也可以讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。其实是表示目前连接使用了SSL进行加密,把保证客户端到服务器端的通信保护起来。 采用https的服务器
2017-04-21 15:10:40
1773
原创 HTTP协议分析
一、简介 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名
2017-04-20 20:06:31
2744
原创 架构设计之MVP
一、简介 MVP (Model-View-Presenter),MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。二、运用MVPPresenter 相当于model和view的协调者,作为View和Model的沟通的桥梁,它从Model层检索数据后返回给View层,将View与M
2017-04-17 16:41:46
1101
原创 架构设计之MVC
一、简介 MVC(Model View Controller,模型-视图-控制器)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输
2017-04-17 15:50:13
1205
原创 android 系统架构分析
了解系统架构对知识点梳理以及学习方向把控都要一定好处。Android分为4个主要功能层,分别是Linux内核层(Linux Kernel),系统运行时库层(Libraries和Android Runtime),应用程序架构层(Application Framework)和应用程序层(Applications)。应用框架层(Application Framework) 应用层上包含系统内置的应用程序
2017-04-14 16:30:47
1849
原创 Apache服务器对比tomcat服务器
一、简介 Apache和Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是开源免费的,可以独立的成为Web服务器。一般Apache用于Web服务器而一般Tomcat用于Java应用服务器。二、优缺点 Apache: Apache服务器,可以作为web服务器使用。只支持静态网页,用于处理静态HTML 如果要在Apache环境下运行jsp 的话就需要一个解释器
2017-04-13 11:53:52
2586
原创 Android性能提升之LeakCanary
在build.grade 里加上依赖dependencies { debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5' releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5' testCompile 'com.squareu
2017-04-11 17:30:28
1095
原创 Android 7.0 走进牛轧糖
谷歌正式在I/O大会现场详细介绍了有关Android 7.0(牛轧糖)的大量信息。目前,我们已经知道,新一代Android操作系统将支持无缝升级,能够通过Vulkan API来在中低硬件配置设备上实现游戏流畅体验以及更多的Emoji表情。其实,Android 7.0最大也是最引人关注的还是来自运行效率上的改进。 目前,谷歌已经放出了Android 7.0的第三个预览版系统,正式版则要等
2017-04-11 16:42:23
1241
原创 Android DES数据加密
DES加密介绍: DES是一种对称加密算法,所谓对称加密算法即:加密和解密使用相同密钥的算法。DES加密算法出自IBM的研究,后来被美国政府正式采用,之后开始广泛流传,但是近些年使用越来越少,因为DES使用56位密钥,以现代计算能力, 24小时内即可被破解。DES加密使用方式:1.)DesUtil常量类介绍 private final static String HEX = "0123456
2017-04-11 14:33:40
1229
原创 android开发必备官方链接
1、谷歌安卓开发者页面这里是主站点,在这您可以找到一切资源帮助您开始安卓开发。此站包含了很多关于学习基础知识的资源,完整的API引用,以及你开始开发所需的各种工具。此站共分为五个部分:作为初学者,你应该从工具开始,这部分讲解了如何安装安卓SDK。教程为你提供了关于安卓的基本介绍,教给你如何写出你的第一个程序。它包括很多的资源,即便成为高级程序员你仍需阅读这里面的文章。API指南是对于不同API更技术
2017-04-10 17:22:28
1102
原创 android studio之Lint代码质量控制提升
不同级别的工程师,编程水平不尽相同,导致开发出的 APP 在性能和实现效果上面差异很大。而起android开发还存在适配性的问题,Google 也考虑到这个问题,推出了一些常见的编程建议,并通过 lint 这个工具可以告诉我们代码中有哪些不合理的实现。Lint 是一款静态代码分析工具,能检查安卓项目的源文件,查找潜在的程序错误以及优化提升的方案。Lint在默认情况下是启动的。具体给我设置的
2017-04-07 16:29:50
1873
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人