- 博客(57)
- 资源 (23)
- 问答 (1)
- 收藏
- 关注
转载 Gradle和Maven区别(转自zhihu
Gradle和Maven都是项目自动构建工具,编译源代码只是整个过程的一个方面,更重要的是,你要把你的软件发布到生产环境中来产生商业价值,所以,你要运行测试,构建分布、分析代码质量、甚至为不同目标环境提供不同版本,然后部署。整个过程进行自动化操作是很有必要的。整个过程可以分成以下几个步骤:编译源代码运行单元测试和集成测试执行静态代码分析、生成分析报告创建发布版本部署到目标环
2016-08-30 18:28:48 664
转载 通俗的理解Gradle(转自zhihu
软件开发讲究代码复用,通过复用可以使工程更易维护,代码量更少..... 开发者可以通过继承,组合,函数模块等实现不同程度上的代码复用.但不知你有没有想过,软件开发也是一种工程作业,绝不仅仅是写代码,还涉及到工程的各种管理(依赖,打包,部署,发布,各种渠道的差异管理.....),你每天都在build,clean,签名,打包,发布,有没有想过这种过程,也可以像代码一样被描述出来, 也可以被复用.举
2016-08-30 17:11:23 517
转载 Git SSH Key 生成步骤
Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。github的SSH配置如下:一 、设置Git的user name和email:$ git config --global user.name "xuhaiyan"$ git config --global user.email "haiyan.xu.vip@gmail
2016-08-30 14:06:44 511
原创 android studio2.1关联源码bug记录
我自己是直接可以F3或者按Ctrl进去的,也能看到系统SDK源码,昨天同事说他的不行,一看,source code在SDK Manager里也下载好了,然后在本地磁盘直接打开比如Activity的源码,也都有。但是通过IDE打开就是不行,看不到方法注解之类的。后来同事说找到原因了,是androidstudio2.1的一个bug。解决方案如下(Mac上)cd /users/emo/L
2016-08-22 14:16:53 517
转载 bolts-android
对Android客户端编程来说,有个明确的规则是不能在ui线程里面做耗时的操作。这样就要求网络请求、文件读写等等操作都要异步操作。而异步操作完成后,往往需要再更新ui界面。最直接的想法是回调,只要保证在ui线程里面,更新ui组件不会困难。但有些情况下,往往需要多层异步操作,这时候代码就很丑了,不管是维护,还是编写都是挑战。以发布内容举例:先上传所有图片,图片依次上传。 图片上传完成后,调用
2016-07-11 11:59:25 581
转载 Git命及Git数据通信原理详解
Git是一款开源的分布式版本控制系统(VCS),常用的VCS工具还包括SVN、Mercurial等,他们的使命是对资源变化的进行版本管理控制,对资源容灾备份,支持多域协同开发。这里的资源不仅仅是系统代码,还包括图片、文件、网页等。本篇文章结合流程图、详细的注解、实例操作针对Git的使用、Git数据通信原理进行细致的讲解,利用半场足球赛的时间通读全文后相信你面对Git会自信满满、知其所以然,使用起来
2016-05-11 12:17:16 907
原创 AndroidStudio十佳常见编译或运行错误集锦
Error:Execution failed for task ':app:processDebugResources'.> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\sdk\build-tools\19.1.0\
2016-04-25 08:05:27 9078 1
原创 CompileSdkVersion和buildeToolVersion版本号关系
1、CompileSdkVersion是你SDK的版本号,也就是API Level,例如API-19、API-20、API-21等等。2、buildeToolVersion是你构建工具的版本,其中包括了打包工具aapt、dx等等。这个工具的目录位于..your_sdk_path/build-tools/XX.XX.XX这个版本号一般是API-LEVEL.0.0。 例如I
2016-04-24 23:14:11 1815
转载 Android Studio 导入各种形式的三方库
1,导入 jar 包导入 jar 包的方式非常简单,就是在项目中的 libs 中放入你需要导入的 jar 包,然后右键你的 jar 文件,选择“add as a library”即可在你的项目中使用这个 jar 包了。如果 gradle 中已经有如下代码,只需要sync一下即可compile fileTree(include: ['*.jar'], dir: 'libs')
2016-04-24 16:21:20 433
翻译 View的事件体系
onInterceptTouchEvent()用于处理事件并改变事件的传递方向。处理事件这个不用说了,你在函数内部编写代码处理就可以了。而决定传递方向的是返回值,返回为false时事件会传递给子控件的onInterceptTouchEvent();返回值为true时事件会传递给当前控件的onTouchEvent(),而不在传递给子控件,这就是所谓的Intercept(截断)。onTouchEv
2016-04-07 12:04:32 387
转载 Mac上SSH的生成
Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。github的SSH配置如下:一 、设置Git的user name和email:$ git config --global user.name "username"$ git config --global user.email "[email protected]
2016-01-28 13:42:00 3130
转载 FrescoImageUtil的使用
引入Fresco的原因:性能方面:目前项目中使用的Universal-Image-Loader(简称UIL)是一个比较强大的图片加载框架.在java层有非常丰富的加载,缩放,缓存逻辑,可以满足目前项目所有需要.但是其bitmap在内存缓存这一级依然使用javaheap,在控件大小未能获取到时(页面oncreat时加载图片),创建的bitmap是以原始图片的宽高为标准生成的(不超过confi
2016-01-22 14:09:00 2687
原创 Git的三级缓存
木有visio,手画。不要在意这些细节多个开发者一起干一个项目的某一个迭代版本。如上图,dever A和dever B一起干2.3版本。用git作为工程的版本控制工具。1级缓存就是在androidStudio里的修改快照,任何改动都会存在项目的工作空间,并没有存到git仓库里去。2级缓存就是本地的git仓管,此事也并没有推送到服务器origin上去,只是提交到了git仓库而已。
2015-11-30 09:38:10 596
原创 android开发表情输入
偌,首先声明,我并不是用图片在edittext之类的控件中显示,来充当表情。而是用手机系统自带的字符集,通过unicode编解码来做的。所以不需要在工程里放入几百张表情的小图片。因为Emoji表情本来就是字符集里的一个字符,和普通的中文英文是一个意思。只是在unicode扩展字符集里而已。1,down一份Emoji表情的Unicode编码的json或者xml数据(见附件下载)。当然了,
2015-11-19 11:51:19 2806
转载 如何理解Looper.prepare()
Looper用于封装了android线程中的消息循环,默认情况下一个线程是不存在消息循环(message loop)的,需要调用Looper.prepare()来给线程创建一个消息循环,调用Looper.loop()来使消息循环起作用,从消息队列里取消息,处理消息。注:写在Looper.loop()之后的代码不会被立即执行,当调用后mHandler.getLooper().quit()
2015-06-10 22:18:57 1876
转载 Fragment生命周期及其与activity的关系
Fragment的生命周期及其与activity的关系如上图所示,下面分别对每个回调进行中文注释,如下所示: [html] view plaincopyonAttach:当fragment第一次添加到activity时调用,onCreate(bundle)将在这后面执行。 onCreate:fragment初次创建时调
2015-06-10 16:01:32 1054
转载 两个Fragment之间的跳转,和数据的传递
需求:从一个Fragment跳转到另一个Fragment,并且还要传递数据,就像Activity的跳转一样。 1、首先在第一个Fragment 里面拿到FragmentManger 和FragmentTransaction 代码如下。@Overridepublic void onCreate(Bundle savedInstanceState) { super.on
2015-05-24 10:51:15 18075 3
转载 Android高效加载大图、多图解决方案,有效避免程序OOM
高效加载大图片我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小。比如说系统图片库里展示的图片大都是用手机摄像头拍出来的,这些图片的分辨率会比我们手机屏幕的分辨率高得多。大家应该知道,我们编写的应用程序都是有一定内存限制的,程序占用了过高的内存就容易出现OOM(OutOfMemory)异常。我们可
2015-05-22 08:25:28 621
转载 Instrumentation
这两天准备研究Robotium的源码,不过由于Robotium是以Instrumentation为基础的,因此就先补习了一下Instrumentation的基础。 Instrumentation是Android自带一个单元测试框架,不过虽然这么说,其对于大部分应用开发人员来讲,最大的作用反而是用于功能或UI测试。 整个框架继承自JUnit框架,使用方法也类似,也是要继承T
2015-05-18 15:25:37 1679
转载 Monkeyrunner
一、什么是monkeyrunnermonkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。monkeyrunner工具的主要设计目的是用于测试功能/框
2015-05-18 14:44:53 553
转载 三次握手四次挥手
TCP/IP 状态机,如下图所示:在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。 (SYN包表示标志位syn=1,ACK包表示标志位ack=1,SYN+ACK包表示标志位syn=1,ack=1) (1) 第一次握手:建立连接时,客户端A发送SYN包(SEQ_NUMBER=j)到服务器B,并进入SYN_SEND状态,
2015-05-14 19:58:57 720
转载 Android网络编程 --断点续传下载文件
想实现断点续传需要对http协议有一定的了解,并且对多线程机制比较熟悉,还有就是Android中异步更新UI的原理不能让程序出现卡顿的现象。在说http断点续传之前需要重点了解http协议头部的Range字段Range 用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式: Range:(unit=first byte pos)-[last byte
2015-05-11 10:33:19 1449
转载 Android性能优化
2015新年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个方面展开,Android的渲染机制,内存与GC,电量优化。下面是对这些问题和建议的总结梳理。0)R
2015-05-11 10:23:22 701
翻译 HTTPS是如何保证连接安全
HTTPS协议的工作原理是什么?”这是我在数天前工作项目中需要解决的问题。作为一名Web开发者,我当然知道 HTTPS 协议是保障用户敏感数据的好办法,但并不知道这种协议的内在工作机制。它怎么保护数据?有人监听线路的情况下,服务器与客户端之间如何建立安全的连接?安全证书又是什么,为什么还要花钱买呢? 一系列通道在深入讲解原理细节之前,让我们首先简单了解下HT
2015-05-09 14:27:45 752
翻译 TCP/IP体系结构深入理解
TCP/IP协议集把整个网络分成四层,包括网络接口层、网际层、传输层和应用层。 1.网络接口层 网络接口(Network Interface)和各种通信子网接口,屏蔽不同的物理网络细节; (1)ARP协议: 地址解析协议(Address Resolution Protocol):实现IP地址向物理地址的映射; (2)RARP协议: 反向地址解析协议(Reverse Addr
2015-05-09 11:39:45 657
转载 android无法下载adt-bundle.绕个弯
android官网:http://developer.android.com/sdk/index.htmladt-bundle下载地址:https://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip 64位下载地址https://dl.google.com/a
2015-04-28 22:59:49 760
转载 支付宝快捷支付开发
转载请标明出处:http://blog.csdn.net/u014084504/article/details/42104035公司最近要在项目中加入购物车功能,提到购物车那就自然少不了支付宝的身影啦。下面我们就来探讨一下如何在Android快速集成支付宝SDK。支付宝的SDK目前已经更新到了2.0版本,这次的SDK相比上个版本的SDK来说,代码更佳简洁了,集成起来更加的方便快捷。
2015-04-26 09:56:28 3263 1
转载 Axure RP快速入门
Axure RP 能帮助网站需求设计者,快捷而简便的创建基于网站构架图的带注释页面示意图、操作流程图、以及交互设计,并可自动生成用于演示的网页文件和规格文件,以提供演示与开发。主要有以下几条功能:一.网站构架图(Site Structure) AxureRP可以快速绘制树状的网站构架图,而且可以让构架图中的每一个页面节点,直接连接到对应网页。二.示意图(Wireframe)
2015-04-23 14:50:52 1618
转载 张小龙谈app(重点部分)
当用户超过一亿之后,微信4.0推出“朋友圈”,建立手机上的熟人社交圈,开放API接口打造移动社交平台。微信4.2推出视频通话功能,彻底封闭手机通讯工具上的任何其它可能。从此,微信确立了移动互联网时代生活方式的产品地位,未来一系列新功能的演进,都将围绕这一核心价值进行。任何试图以节省电话费、短信费作为竞争卖点的产品,此时已经完全失去了竞争的可能,因为微信提供的已经不再是单纯的通讯服务,而是移动互联网
2013-02-25 16:48:45 950
转载 android4.0源码地址
git clone https://android.googlesource.com/device/common.git git clone https://android.googlesource.com/device/htc/common.git git clone https://android.googlesource.com/device/htc/dream-sapphi
2013-02-18 14:13:20 865
转载 windows下androidNDK环境配置
一:什么是NDK? NDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so 和java 应用一起打包成apk。这些工具对开发者的帮助是巨大的。 NDK 集成了交叉编译器,并提供了相应的mk 文件隔离CPU、平台、ABI 等差异,开发人员只需要简单修改mk 文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建
2013-02-01 15:27:00 1051
转载 常用正则表达式
验证数字的正则表达式集 验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数字:^\d{m,n}$验证零和非零开头的数字:^(0|[1-9][0-9]*)$验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$验证非零的正整数:^\+?[1-9][
2013-01-30 11:08:22 604
转载 http获取网络资源文件等并保存到本地sd或者磁盘
因为是转载的,就不废话了。第一种方法:package com.hg.threadPoolExecutorDemo;import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import jav
2013-01-24 15:44:59 3953
原创 android webview 和 js交互
事出有因,那天我看到手厅的客户端里,在网页webview中点击网络设置后,跳转到了手机的网络设置界面,然后就搜了一下,原来是html中js与androidApp之间的交互。这么说的太费劲了,还是上截图吧,如下:手机没网的时候,会弹出上面这个网页,然后我们通过快捷按钮“网络设置”后,界面跳转到如下这个是通过js和webview共同完成的一个交互效果。首先,在js中如下:
2013-01-08 12:07:13 5784
转载 dos常用指令
31. regedit.exe----注册表48. msconfig.exe---系统配置实用程序 80. services.msc---本地服务设置 93. regedit.exe----注册表 110. osk------------打开屏幕键盘 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. N
2012-12-19 17:30:39 769
原创 MediaPlayer简单使用
啥也不说了,上代码package com.media;import java.io.IOException;import android.app.Activity;import android.media.MediaPlayer;import android.media.MediaPlayer.OnCompletionListener;import android.os.Bund
2012-12-12 15:06:21 4634
转载 android之谁动了我的内存
一、 Android的内存机制 Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似。程序员通过new为对象分配内存,所有对象在java堆内分配空间;然而对象的释放是由垃圾回收器来完成的。C/C++中的内存机制是“谁污染,谁治理”,java的就比较人性化了,给我们请了一个专门的清洁工(GC)。 那么GC怎么能够确认某一个对象是不是已经被废
2012-12-03 14:52:01 1992
转载 android适配各种分辨率的问题
Android设备屏幕的尺寸是各式各样的,如小米是4英寸的,Xoom平板是10英寸;分辨率也千奇百怪,800×480,960×540等;Android版本的碎片化问题更是萦绕于心,不过在设计应用时可以分为两大块:3.0之前的版本和3.0之后的版本。这种情况会带来什么问题我们用三个假设来说明一下。1. 假设你的手上有两个4英寸的设备,设备A的分辨率是800×480,设备B的分辨率是1
2012-11-30 13:24:07 59315 3
emoji表情库
2015-11-19
webview与js的交互
2013-01-08
net.sf.fjep.fatjar_0.0.31.jar
2012-11-15
android intent action
2012-09-17
json数据的可视化查看、可视化编辑、Gson工具包
2012-08-20
eclipse升级adt后android项目DDMS抛出异常
2013-03-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人