- 博客(85)
- 收藏
- 关注
原创 JS学习(2)-JavaScript 基本语法
1关键字var用于定义局部变量,去掉关键字var则可以定义全局变量.//局部变量1var message = “hi”, found = false, age = 29;//局部变量2function test(){ var message = “hi”; //local variable}test();alert(message); //erro
2016-10-10 23:05:02 174
原创 JS学习(1)-JavaScript in HTML
1为了兼容各种浏览器(xhtml,html),在html 使用inline javascript时推荐的格式如下所示:// function compare(a, b) { if (a < b) { alert(“A is less than B”); } else if (a > b) { aler
2016-10-08 23:27:09 356
原创 Android知识要点整理(21)----Gradle 之创建任务和插件
1.定义Tasks先看创建Tasks的代码示例://方式1task hello//方式2task hello { println 'Hello, world!'}//方式3task hello << { println 'Hello, world!'}//方式4task(hello) << {println 'Hello, world!'}//方式5task('he
2016-08-29 23:29:45 1153
原创 Android知识要点整理(20)----Gradle 之多模块管理
Android Studio 不仅支持创建library 和app模块,还支持为Android Wear,Android TV ,Google APP Engine 等创建模块。1.多模块结构多模块结构可以是如下所示的结构:project├─── setting.gradle├─── build.gradle├─── app │ └─── build.gradle└─── l
2016-08-28 11:41:16 603
原创 Android知识要点整理(19)----Gradle 之构建变体
构建类型(Build Type)和产品渠道(Product Flavor)的结合,称之为构建变体(Build Variants)。1.构建类型(Build Type)构建类型用于定义如何去构建一个APP.每一种类型可以定义是否包含DEBUG信息,applicationId等信息。我们可以在buildTypes代码块下定义构建类型,如下所示:android { buildTy
2016-08-14 22:44:57 488
原创 Android知识要点整理(18)----Gradle 之依赖管理
Gradle 在依赖管理方面非常出色,要添加依赖有多种方式,每种方式都特别方便。接下来就讲一讲以依赖管理方面的要点。1.仓库(Repositories)仓库可以看作文件的集合,它可以用来提供依赖源。Gradle 支持各种类型的仓库,如Maven,Ivy等等。Gradle本身不会为项目定义任何仓库。如果项目中要使用仓库,需要在配置文件中添加相关的代码。如下所示:repositorie
2016-08-09 22:04:49 316
原创 Android知识要点整理(17)----Gradle 之自定义构建
通过Gradle,我们可以灵活地定制构建中的变量,从而方便灵活地控制构建过程。理解三个文件Gradle项目有3个重要的文件需要深入理解:项目根目录的build.gradle,settings.gradle和模块目录的build.gradle。 1.settings.gradle文件会在构建的initialization阶段被执行,它用于告诉构建系统哪些模块需要包含到构建过程中。对于单模块
2016-08-02 22:58:11 298
原创 Android知识要点整理(15)----Gradle 之Groovy语言基础
Android项目使用Gradle作为构建框架,Gradle又是以Groovy为脚本语言。所以学习Gradle之前需要先熟悉Groovy脚本语言。 Groovy是基于Java语言的脚本语言,所以它的语法和Java非常相似,但是具有比java更好的灵活性。下面就列举一些和Java的主要区别。 1.Groovy默认引入如下的package:java.io.*java.lang.*java.ma
2016-06-19 22:27:56 670
原创 android知识要点整理(14)----Volley(HTTP请求框架)
Volley是一个HTTP库,用于为Android应用提供更见便捷快速的网络请求。Volley有以下特点: - 自动调度网络请求 - 支持并发网络连接 - 屏蔽响应缓存细节 - 支持设置请求的优先级 - 支持取消单个或一组请求 - 容易定制请求 - 网络请求结果按请求顺序返回,这样更加方便控制UI的显示 - 提供调试和跟踪工具但是,Volley**不适用于下载大文件和处理数据流
2016-06-10 22:07:43 360
原创 Android 知识要点整理(13)----网络连接
网络连接是应用要具备的基本功能。下面就来讲讲网络连接的基本知识,包括如何连接网络,监控网络状态以及控制网络的使用。连接到网络在Android平台,首先要声明使用网络的权限。<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.AC
2016-06-05 13:26:13 574
原创 Android 知识要点整理(12)----Animation(动画)
动画分类Android动画有3类:帧动画、视图动画、属性动画。帧动画和视图动画又统称为补间动画。Android 3.0(API LEVEL 11)开始支持属性动画。帧动画帧动画是针对Drawable资源的动画。其本质是一系列Drawable资源的连续变化,其本质是AnimationDrawable对象。其使用方法如下:定义AnimationDrawable资源中用到了表示天气的三张图片<animat
2016-05-22 21:30:12 4481 1
原创 Android 知识要点整理(11)----Scenes and Transitions(场景和变换)
除了常规的动画(帧动画、补间动画、属性动画)等作用于单个控件的动画,Android 还提供了一种类似的动画的功能,用于在两个不同的布局切换时提供过渡动画效果—-Transitions Framework。Transitions Framework 简介该框架帮助在布局改变的时候增加动画效果,它会在布局发生改变的时候应用一个或多个动画效果于布局中的每个控件。框架具有以下特点:分组动画 一个或多个动
2016-05-08 23:00:11 2254
原创 Android 知识要点整理(10)----Bitmap缓存策略
当我们要加载数量众多的图片到ListView或者GridView的时候,来回滑动ListView或者GridView会导致图片不断的重复加载,如果重复从磁盘或者网络加载,显然会影响加载速度,给用户带来不好的体验。这个时候我们可以考虑使用内存缓存或者磁盘缓存,减少从磁盘或网络加载的次数,提升性能。 Android系统为我们提供了内存缓存类LruCache和磁盘缓存类DiskLruCache类。下面
2016-02-01 00:39:33 433
原创 Android知识要点整理(9)----Bitmap图片处理和展示
在Android系统中,图片都是以Bitmap的形式呈现在UI界面上的。Bitmap通常是比较消耗内存的,而Anroid APP 都有内存大小限制,所以当我们显示比较大的图片时很容易出现内存溢出的情况。下面就重点讲一讲如何更好地处理Bitmap图片。1.高效加载大图在很多情况下,提供的图片尺寸都要比展示在用户界面上的尺寸大。高分辨率的图片展示在低分辨率屏幕的手机上时,即使按照图片的尺寸完全加载,对用
2016-01-21 23:23:03 702
原创 Android知识要点整理(8)----控制相机
除了调用第三方APP进行拍照外,我们还可以自己使用系统API来控制相机设备进行拍照。这个相对来说比较复杂。下面只讲比较关键的步骤。1.声明权限控制照相机我们需要声明使用照相设备的权限。<uses-feature android:name="android.hardware.camera" android:required="true"/> <uses-permission android:name
2016-01-16 23:20:39 579
原创 Android 知识要点整理(7)----拍照和录像
如果想要我们的APP具有拍照功能,有两种方式可以实现,一种是调用拍照APP,比如Android系统自带的Camera APP;另一种就是完全自己写,自己调用照相机的API,控制快门等,实现类似Camera APP的应用。第一种相对简单,第二种就比较复杂。如果我们的APP不是以拍照功能为主,我们就可以选择第一种简单的实现方式。下面就讲一讲第一种方式的重点知识。第二种方式暂时不讲。1.声明照相机权限如果
2016-01-12 00:51:32 506
原创 Android知识要点整理(6)----音频播放管理
APP中播放音频,最重要的一点就是要保证用户能够按预期的来控制音频的播放,还有就是保证多个APP不会同时播放音频。为了达到这两点要求,我们需要掌握如何控制音频的音量和播放,如何控制同一时刻只有有一个音频流,如何控制音频设备的输出等等。下面就从3个方面详细讲解。1.音量和播放控制用户能够控制APP播放音频的音量以及控制它的播放暂停快进后退等操作,这对提升APP体验来说是基本的。设想如果一个APP突然播
2016-01-09 22:23:02 746
原创 Android知识要点整理(5)----文件分享
APP经常需要发送一个或多个文件给其他APP,例如,相册APP发送图片给图片编辑APP用来编辑图片,文件管理APP的复制和粘贴文件都涉及到文件分享功能。分享文件的唯一安全的方法是分享文件的content uri并临时授予访问权限给其他APP。这个拥有临时访问权限的content uri 是安全的,因为它只针对接收文件的APP授权,并且在访问完后权限自动失效。Android 系统提供了FileProv
2016-01-03 23:08:55 1097
原创 Android知识要点整理(4)----简单数据分享
内容分享是Android App很重要的一个功能。借助内容分享的功能,你可以发送数据给其他APP,可以接收其他APP发来的数据,还可以发送文件或者图片到其他的设备,实现文件的分享功能。下面就从3个方面总结一下Android的内容分享功能。1. 分享简单数据在Activity中发送数据给另一个Activity或者另一个APP都可以通过action 为 ACTION_SEND的Intent来完成。Int
2016-01-03 01:51:44 403
翻译 设计模式问答系列(3)----抽象工厂模式
你能解释抽象工厂模式吗?抽象工厂扩展了基本的工厂模式。抽象工厂帮助我们将相似的工厂模式类组合在一个统一的接口中。这样所有的共同的工厂模式可以继承自一个公共的抽象工厂类,该抽象工厂类将它们统一在一个公共的类中。所有其他的和工厂模式相关的事和上一节讨论的工厂模式一样。一个工厂类帮助我们集中管理类和类型的创建。抽象工厂帮助我们统一相关联的工厂模式,使得提供给客户端的接口更加简单。既然我们了解基本概念,接下
2015-11-06 00:03:30 547
翻译 设计模式问答系列(2)----工厂模式
你能解释工厂模式吗?工厂模式是创建类模式的一种。从它的名称可以看出,它是用来建造或者创造对象的。在软件体系范围内,工厂模式用来集中化创建对象。下面是一段客户端的代码,根据不同的发票类型来创建各种发票对象。代码存在如下两个问题:第一,代码中多处出现了new关键字。一大堆创建对象的活动会使得代码的逻辑非常复杂。 第二个问题就是代码需要关心所有的发票类型。如果我们要添加一种有脚注的发票类型,我们就需
2015-10-24 22:27:22 391
翻译 设计模式问答系列(1)---- 简介
设计模式问答你能解释抽象工程模式吗?你能解释建造者模式吗?你能解释原型模式吗?你能解释原型模式中的浅复制和深复制吗?你能解释单例模式吗?你能解释命令模式吗?项目中的设计模式简介下面是一些小巧的关于设计模式的问答,以一种问题和答案的形式给出。在本章节中我们会涉及到工厂、抽象工厂、建造者、原型、深浅原型、单例和命令模式。你可以通过以下链接阅读设计模式问答系列的其他章节内
2015-10-22 23:16:02 515
转载 Android性能优化典范第3季
转自http://hukai.me/android-performance-patterns-season-3/Android性能优化典范的课程最近更新到第三季了,这次一共12个短视频课程,包括的内容大致有:更高效的ArrayMap容器,使用Android系统提供的特殊容器来避免自动装箱,避免使用枚举类型,注意onLowMemory与onTrimMemory的回调,避免内存泄漏,高效的位置
2015-10-18 10:53:00 434
转载 Android性能优化典范第2季
转载自http://hukai.me/android-performance-patterns-season-2/Google前几天刚发布了Android性能优化典范第2季的课程,一共20个短视频,包括的内容大致有:电量优化,网络优化,Wear上如何做优化,使用对象池来提高效率,LRU Cache,Bitmap的缩放,缓存,重用,PNG压缩,自定义View的性能,提升设置alpha之后
2015-10-18 10:14:22 433
原创 Android知识要点整理(2)----- 应用资源
安卓知识要点整里(1)-应用资源资源构成资源由三部分构成:XML资源文件、数据资源文件、资源目录。 列表型xml资源文件:每个资源文件中都存储了多个资源项; 值类型xml资源文件:每个文件仅代表一个资源项。两种适配配置变更手段:快速缓存状态:onSaveInstanceState,onRestoreInstanceState(跨进程保持);onRetainNonConfigurationIn
2015-09-19 22:19:15 405
原创 Android知识要点整理(1)---- Android 2D动画
1. 动画类型Android 2.3 及以前的版本支持3种类型动画:逐帧动画、布局动画和视图动画。逐帧动画:作用对象是系列图片,是通过AnimationDrawable 类来完成逐帧动画;布局动画:作用对象是某些类型的视图,比如ListView 、GridView,通常是为首次添加布局时增加动画效果。视图动画:作用对象是任意视图,通过控制用于显示视图的变换矩阵,可以将任意视图制作成
2015-05-31 22:07:08 526
转载 Uber架构重构的十二条军规(完整篇)
对于开发者来说,架构设计是软件研发过程中最重要的一环,所谓没有图纸,就建不了房子。在遍地App的互联网时代,架构设计有了一些比较成熟的模式,开发者和架构师也可以经常借鉴。但是,随着应用的不断发展,最初的架构往往面临着各种问题,比如无法满足客户的需求、无法实现应用的扩展、无法实现新的特性等等。在这种情况下,我们如何避免一些坑,尽量比较成功地实现架构的重构,是很多开发者和架构师亟需
2015-05-16 12:35:09 197
原创 微信支付传入的参数中,当body含有中文时,提示签名错误
微信支付传入的参数中,当body含有中文时,提示签名错误。解决办法是:在将传参转为XML格式后,再将其转码为ISO8859-1.new String(sb.toString().getBytes(), "ISO8859-1");
2015-05-06 19:18:22 1063
原创 Android 手机设备中,onItemSelected 无效,建议使用onItemClicked
Android 手机设备中,onItemSelected 无效,建议使用onItemClicked
2015-05-05 09:49:41 378
原创 Swift 语言基础(4)-控制流
for 循环for ... in ... 循环 forindex in 1...5{ println("\(index)times 5 is \(index * 5)") } // 1 times 5 is 5 // 2 times 5 is 10 // 3 times 5 is 15 // 4 times 5 is 20 // 5 t
2015-03-28 20:44:57 348
原创 Swift 语言基础(3)-数组和字典类型
ArraysArray Literalsvar shoppingList: String[] = ["Eggs","Milk"] // shoppingList has been initialized with two initial itemsvarshoppingList = ["Eggs","Milk"]println("The shop
2015-03-24 18:51:22 334
原创 Swift 语言基础(2)-字符和字符串
字符串字面量1 let someString = "Some string literal value"
2015-03-23 19:55:37 357
转载 PorterDuffXfermode 模式示例
PorterDuff.Mode为枚举类,一共有16个枚举值:1.PorterDuff.Mode.CLEAR 所绘制不会提交到画布上。2.PorterDuff.Mode.SRC 显示上层绘制图片3.PorterDuff.Mode.DST 显示下层绘制图片4.PorterDuff.Mode.SRC_OVER 正常绘制显示,上
2015-03-23 15:56:25 485
原创 Swift 语言基础(1)-The basics
常量与变量let maximumNumberOfLoginAttempts = 10var currentLoginAttempt = 0var x = 0.0, y = 0.0, z = 0.0var welcomeMessage: Stringlet π = 3.14159let 你好 = "你好世界"let = "dogcow"var friendlyWelcome = "
2015-03-17 23:25:27 463
原创 Android Studio 以兼容方式导入Eclipse 项目
1.需求开发Android 项目时可以使用Eclipse+ADT插件,也可以使用最近流行的Android Studio。如果你的项目一开始是使用Eclipse开发的,现在想彻底转为使用Anddroid Studio 开发,直接使用Android studio 导入Eclipse project 即可,Android Studio 会自动将Eclipse project 转换为Androi St
2015-03-15 11:15:12 1891
转载 Android 性能优化典范第1季
2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个方面展开,Android的渲染机制,内存与GC,电量优化。下面是对这些问题和建议的总结梳理。0)Rend
2015-03-04 11:06:22 412
原创 Android生成圆形缩略图的一种方法
做项目的过程中需将用户头像图片生成圆形的指定大小的drawable对象,用作actionbar的navigation icon。原始图片是方形的,尺寸144x144,若是直接调用setNavigationIcon()方法,图片将覆盖actionbar的大部分。综合网上各种制作缩略图和圆形图片的方法,总结出如下个人觉得比较简便的方法,记录下来以备后边用到。比较简单,直接贴代码 /**
2015-02-16 19:56:09 957
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人