- 博客(128)
- 资源 (53)
- 收藏
- 关注
原创 Android设计模式之策略模式
看下策略模式的定义: 策略模式定义了一些列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变换。乍一看,也没看出个所以然来。举个栗子吧。 假设我们要出去旅游,而去旅游出行的方式有很多,有步行,有坐火车,有坐飞机等等。而如果不使用任何模式,我们的代码可能就是这样子的。public class TravelStrategy { enum S
2018-01-12 15:47:30 803
原创 IOS设计模式之单例模式(Singleton)
定义 保证一个类仅有一个实例,并提供一个该实例的全局访问点。 定义包含三层含义:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须向整个系统提供这个实例。结构图 从结构图可以看到,单例模式(Singleton)是比较独立的一个设计模式,它的主要特点是控制某个类的实例唯一性,通过上图我们知道它包含的类只有一个,就是Singleton。该模式中包含一个静态私有成员变量mySingle
2017-10-11 15:06:40 550
原创 2017最酷的 30 个 Android 库
这里是 30 个我最喜欢的在 2017 年 3 月前新出现的 Android 库。其中一些并没有用于实际产品,但你使用它们可能会得到很多的乐趣。我希望你们喜欢这些库。下面的顺序不代表排名:1.Matisse这是一个漂亮的本地图片、视频选择器。其主要功能有:选择包括JPEG、PNG、GIF格式的图片和 MPEG、MP4 格式的视频支持自定义主题,包括两个内置的主题不同的图片加载器定义自定义过滤规则在
2017-09-13 10:12:46 959 2
原创 Android 7.0新特性
Android7.0发布已经有一段时间了,目前越来越稳定了,有些厂商已经在新机子里开始应用了。今天我来专门就7.0中的新功能、新特性做一下总结。首先看一下7.0新LOGO哈! Android 7.0 Nougat! 是不是觉得这个logo有点小清新!重要的开发者功能多窗口支持通知JIT/AOT 编译快速的应用安装随时随地低电耗模式后台优化数据存储器新3D渲染 APIQuic
2017-09-12 15:11:33 998
转载 Android端应用秒开优化体验
前言最近部门内抛出了一个问题,应用启动很慢、卡图标?主要表现在中低端机型中。究其这个问题,由于对性能优化比较感兴趣,借了个低端机和一个中端机来一看究竟,对同一应用分别测了下它在中低端机的启动时间,下面为启动耗时情况: 启动了三次,基本都在4s左右。原因究其原因,主要因素是任务在界面绘制前过于集中化。 应用启动过程从用户点击launcher图标到看到第一帧这个过程中,主要会经过以下这些过程:m
2017-09-06 16:34:28 460
原创 SDAutoLayout 使用简介
都说 SDAutoLout 比 Masonry 好用.到底是哪方便优于它呢?下面我们来看看网上的一个例子,来分析用法. 请看下面这个图: 图上所示 现在我要讲的就是这种形式的cell的布局UIImageView *view0 = [UIImageView new];//创建头像UILabel *view1 = [UILabel new];//用户名UILabel *view2 = [UI
2017-09-05 11:23:05 1220
原创 android ViewFlipper屏幕切换
大家好,今天给我将介绍ViewFlipper屏幕切换,屏幕切换指的是在同一个Activity内屏幕间的切换,最常见的切换例如一个系统设置页面;一个个性化设置页面等。不说废话,直接看代码。1.建立工程文件,命名TestviewfillerActivity。 2.布局文件main.xml 如下:android:orientation="vertical" android
2012-03-07 22:20:00 4656
原创 Android 多Dex分包机制
问题引入随着项目工程越来越庞大,代码的方法数不断增长到一定程度,就出现Android 低版本系统应用无法安装的情况。那么这是哪里出错了?Android系统对安装包有哪些限制? 前一阵子,我们发现公司的某一个业务,在Android 2.3及系统安装不了。此时,我们该业务的Android客户端开发已经有50个人。一般外面公司的Android开发也就2~3个,代码的体量也很难增长到像我们这样的...
2018-08-31 11:33:55 1096 1
原创 Android Studio 打包时 Signature Version 选择 V1 V2 说明
问题描述(v1和v2)Android 7.0中引入了APK Signature Scheme v2,v1是jar Signature来自JDK V1:应该是通过ZIP条目进行验证,这样APK 签署后可进行许多修改 - 可以移动甚至重新压缩文件。 V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。正因如此,现在在编译过程中,我们将...
2018-06-28 16:34:49 469
原创 hash算法原理详解
散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。...
2018-04-21 12:49:44 772
原创 Git:代码冲突常见解决方法
今天会陆续整理一些日常开发中使用git工具所遇到的问题。方便以后查看。1.git无法上传jar包问题在用jar提交项目的时候如果没有使用maven 直接报jar包放在lib目录下然后提交的时候会出现无法提交的情况,可以使用以下的解决方案现在项目的根目录里面找到 打开以后 删除 .jar 或者在前面加个#注释掉保存提交后然后再提交,提交的时候如果还是找不到的话要注意一点: ...
2018-03-09 15:28:45 5205
原创 Eclipse关联Git的方法
想在Eclipse中进行Git的管理,提交更新,Push,文件还原等解决方案:安装Eclipse插件,Egit即可,Egit是Eclipse git的简称 操作步骤: 第一步:打开网页http://www.eclipse.org/egit/download/ 第二步:选择插件的安装方式,方式一,在线安装,http://download.eclipse.org/egit/update...
2018-03-09 13:24:10 3133
原创 在windows使用git命令方法
在windows使用git命令方法如下(以win7为例): 1、msysgit 是 Windows 版的 Git可以百度搜索Git下载。 2、安装完成后,开始菜单里找到“Git”->“Git Bash”打开Git。 3、注册用户信息:首先配置你的用户信息的Git命令。 gitconfig–globaluser.name“YourName”gitconfig–globaluser.na...
2018-03-08 19:01:47 3678
原创 androidstudio 拆包时设置dex方法个数
前言Android应用程序,最终发布成一个apk,安装到手机上。 apk文件随便用一个解压缩文件打开,可以看到里面有一个classes.dex文件,这就是之前工程中所有的代码,以及所有依赖的jar包全部合并在一起生成的一个dex文件。关于dex文件是什么,可以自己去科普一下。google当初在设计dex文件的时候,限制了dex文件中最大的函数个数为65536(unsigned short)...
2018-03-05 19:29:53 2327 1
原创 git 配置增强版log
git 配置增强版log配置前 git config –global alias.lg “log –color –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit –”配置后...
2018-03-04 13:51:01 328
原创 git常用命令
一.git常用指令1.查看帮助:git help 2.查看指定指令:git help clone(可以查看这个指令的所有操作文档) 3.搜索关键字:/clone (翻译:F 下一页 ,B 上一页) 4.退出帮助文档:输入Q 5.查看日志信息:git log 6.查看文件状态:git status 显示隐藏文件 defaults write com.apple.find...
2018-03-04 13:28:30 313
原创 SVN常用命令详解
命令的使用1、检出svn co http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码svn co svn://路径(目录或文件的全路径) [本地目录全路径] --username用户名 --password 密码svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用户...
2018-03-04 12:15:11 97671 4
原创 Android彻底组件化
得到Android组件化方案已经开源,参见Android组件化方案开源。方案的解读文章是一个小的系列,这是系列的第二篇文章: 1、Android彻底组件化方案实践 2、Android彻底组件化demo发布 3、Android彻底组件化-代码和资源隔离 4、Android彻底组件化—UI跳转升级改造 5、Android彻底组件化—如何使用Arouter今年6月份开始,我开始负责对“得到app
2018-02-08 18:52:14 418
原创 Android上SQLite的性能优化问题
1.利用android提高的的insert,query,update,deleteAPI与execSql,rawQuery函数执行原生的插入,查询,更新,删除语句操作花费时间的对比结果 在相同的环境(adnroid4.0)和相同的机器下执行相同的动作,记录条数也一样的情况下的对比,多次验证的如下: (1)如果批量执行的记录数在1000条,则Android S
2018-01-30 17:59:22 923
转载 Java实现的二分查找算法
二分查找又称折半查找,它是一种效率较高的查找方法。折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小 于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。 折半查找是一种高效的查找方法。它可以明显减少比较次数,提高查找效率。但是,折半查找的先决条件是查找表中的数据
2018-01-29 11:13:25 310
原创 Android中Service和Thread的区别
首先我们要弄明白Service和Thread分别是怎么定义的:Thread 是程序执行的最小单元,它是分配CPU的基本单位。可以用 Thread 来执行一些异步的操作。Service是Android的四大组件之一,被用来执行长时间的后台任务。默认情况下Service是运行在主线程中的。二者的使用上的区别1.在Android中,Thread只是一个用来执行后台任务的工
2018-01-26 17:32:56 291
原创 音视频知识整理
本文介绍一些音频开发的基础常识,非常重要,因为不了解这些常识,很多Android API或者第三方库的参数,你都不知道该怎么配置。1. 音频开发的主要应用有哪些?音频播放器,录音机,语音电话,音视频监控应用,音视频直播应用,音频编辑/处理软件,蓝牙耳机/音箱,等等。2. 音频开发的具体内容有哪些?(1)音频采集/播放 (2)音频算法处理(去噪、静音检测、回声消除、音效处理、功放/增强、混音/分离,
2018-01-23 14:35:09 420
原创 Java数据结构之LinkedList、ArrayList的效率分析
前言:在我们平常开发中难免会用到List集合来存储数据,一般都会选择ArrayList和LinkedList,以前只是大致知道ArrayList查询效率高LinkedList插入删除效率高,今天来实测一下。先了解一下ListList列表类,顺序存储任何对象(顺序不变),可重复。List是继承于Collection的接口,不能实例化。实例化可以用:ArrayList(实现动态
2018-01-18 14:49:01 288
原创 RoboSpice:android异步网络库
android的开源网络库 RoboSpice, RoboSpice是一个使你建立异步的长时间的运行任务异常轻松的一个网络库,在网络请求,缓存支持,和提供开箱即用的rest请求方面尤为强大,想在30秒内快速学习,请访问this infographics。主要特性:supports Android starting from SDK version 8 (Froyo / 2.2.x)支持 SDK版
2018-01-15 09:49:46 468
原创 android 调用js中的方法
Android中可以使用WebView加载网页,同时Android端的java代码可以与网页上的javascript代码之间相互调用。一 Android部分: 布局代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/to
2018-01-11 16:23:05 393
原创 Android Activity卡顿原因总结
内存泄漏导致内存占用较高,导致JVM频繁触发GC。解决办法:尽可能的减少生命周期长的对象引用生命周期短的对象。导致内存泄漏的原因有一下几个: 1.查询数据库后没有关闭游标cursor,各种资源文件没有close。 2.构造Adapter时,没有使用convertView重用 3.Bitmap对象不再使用时没有调用recycle释放内存 4.静态变量引用对象
2018-01-10 18:27:45 2773
原创 Android 线程优先级
1.Android线程的优先级和设置方法Android线程的优先级和设置方法。Android线程大方向上来说,可以分为UI线程和background线程,如果从UI线程启动,则该线程优先级默认为Default,归于defaultgroup,会平等的和UI线程争夺CPU资源。这一点尤其需要注意,在对UI性能要求高的场景下建议将线程设置为background线程:Process.setThreadPri
2018-01-10 14:33:12 4666 1
原创 IOS SDWebImage内部实现原理
想必大家都很熟悉SDWebImage了,项目中也经常用。可大家知道它的实现原理吗?今天就跟大家分享一下。 先看一下下面这幅图: 图片解释:内存层面的相当是个缓存器,以Key-Value的形式存储图片。当内存不够的时候会清除所有缓存图片。用搜索文件系统的方式做管理,文件替换方式是以时间为单位,剔除时间大于一周的图片文件。当SDWebImageManager向SDImageCache要资源时,先搜索
2018-01-10 14:12:06 1146
原创 Android之Merge与ViewStub布局标签
1 MergeMerge作为A布局根标签,其他布局文件B通过include引用A时,Merge标签会被去掉,在include里存放的是merge的子标签,以此减少布局文件的层次。<merge xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/too
2018-01-10 11:42:50 255
原创 Android文件下载资料整理
[Android快速实现文件下载(只有4行代码)(https://www.jianshu.com/p/46fd1c253701)
2018-01-10 11:30:31 185
原创 IOS中NSArray的4种遍历方式
objective-c 语言 数组遍历的4种方式:1、普通for循环;2、快速for循环;3、特性block方法;4、枚举方法。一. for循环Student *stu = [Student student]; NSArray *array = [NSArray arrayWithObjects:stu, @"1",@"2",nil]; int count = array.count;//
2017-11-24 15:55:16 2676
原创 XML Namespace 命名空间
根据 Namespaces in XML W3C 推荐标准的定义,XML 命名空间 是由国际化资源标识符 (IRI) 标识的 XML 元素和属性集合;该集合通常称作 XML“词汇”。定义 XML 命名空间的主要动机之一是在使用和重用多个词汇时避免名称冲突。XML 模式用于为 XML 实例创建一个词汇并频繁使用命名空间。因此,正确理解命名空间概念对于从总体上理解 XML 模式和实例验证至关重要。命名空
2017-11-24 15:49:15 861
原创 网络抓包分析工具Charles及破解方法
简介Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会
2017-11-24 14:40:03 1049
原创 iOS解决NSArray、NSDictionary打印乱码问题
原来打印dict = {key1 = abc;key2 = "\U4e2d\U6587";} array = (abc,"\U4e2d\U6587")使用方法:将 NSArray+Extension 和 NSDictionary+Extension 两个分类拖入项目即可打印效果 :2015-08-08 10:19:36.294 ICUnicodeDemo[2135:50801]dict
2017-11-24 14:16:12 1047
原创 iOS 11 与 iPhone X的适配
前言9月20日,正式推送Xcode 9 和iOS 11 的正式版,适配iOS 11是首要的适配的,网上教程很多,不在赘述。这里主要讲的是 iPhone X的适配。大神级别的可以不用看,我这里讲的主要是基础的适配工作摘要启动图: 1125 * 2436 statusBar高度: 44 tabbar高度: 83启动App对于一些老项目,在启动图上,可能没有采用xib或者SB进行适配的,所以可能会
2017-09-30 15:41:10 868
原创 Android设计模式之工厂模式 Factory
一.概述平时做项目跟使用第三方类库的时候经常会用到工厂模式.什么是工厂模式,简单来说就是他的字面意思.给外部批量提供相同或者不同的产品,而外部不需要关心工厂是如何创建一个复杂产品的过程.所以工厂模式可以降低模块间的耦合,同时可以提高扩展性(当有新的产品出现时,只需要扩展工厂就行了,上层模块不敏感). 工厂模式根据抽象的角度和层级的不同可以分为两种模式: 1.工厂方法模式 (Factory M
2017-09-30 15:28:01 416
原创 Java的反射机制
反射机制的功能Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的成员变量和方法; 在运行时调用任意一个对象的方法; 生成动态代理。反射机制的利弊其实好处就是,增加程序的灵活性,避免将程序写死到代码里;但是坏处也有,就是性能是一个问题,反射相当于一系列解释操作,通知jvm要做的事情,性能比直接的java代码
2017-09-30 15:04:37 263
原创 完美适配 iOS11
在Appdelegate.m中的didFinishLaunchingWithOptions 方法中添加如下代码,就全局搞定了!if (@available(ios 11.0,*)) { UIScrollView.appearance.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
2017-09-30 12:02:56 1085
转载 Android设计模式之观察者模式
观察者模式(Observer Pattern)定义对象间的一种一个(Observable)对多(Observer)的依赖关系,当一个对象的状态发送改变时,所以依赖于它的对象都得到通知并被自动更新。当然,MVC只是Observer模式的一个实例。Observer模式要解决的问题为:建立一个一(Observable)对多(Observer)的依赖关系,并且做到当“一”变化的时候,依赖这个“一”的多
2017-09-30 11:35:39 648
原创 Android观察者模式简单实现
观察者模式就是:当一个对象的状态发送改变时,所有依赖于它的对象都能得到通知并被自动更新。下面介绍一种简单的使用方法,(下面有demo链接)先看一下project的目录构成: ObserverListener是观察者接口,SubjectListener是被观察者接口,ObserverManager是观察者的管理类。/** * Created by Administrator on 2016/9
2017-09-30 10:26:54 1004
计算机803_北邮真题-史上最强.zip
2019-10-30
Excel数据导入SQLServer
2011-12-01
c# 自动更新 客户端+服务器端
2011-11-09
2011年 程序员考试答案
2011-06-07
《java 编程思想》 pfd
2010-07-11
《程序员面试宝典 》pfd
2010-07-11
自考 电子技术基础(三)历年考题及答案
2010-03-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人