- 博客(129)
- 资源 (4)
- 收藏
- 关注
转载 git revert 和reset的区别
这里讲一下git revert和git reset的区别:git revert 是撤销某次操作,此次操作之前的commit都会被保留git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区具体一个例子,假设有三个commit, git st:commit3: add test3.ccommit2: add test2.ccommit1: add test1.c当执行git rever
2017-03-17 12:17:19 1155
原创 关于近期遇到的坑-SurfaceView,RecylerView等
近期参与了一个多人视频通话的业务,在其中使用SurfaceView负责显示用户的视频流,没想到被坑死。。关于显示和隐藏背景: 由于是用六宫格的形式同时展示多人的视频,就选用了RecyclerView来实现,视频用SurfaceView展示,如果用户关掉了摄像头,使用语音模式就不显示SurfaceView,只显示用户头像就可以了。 因为之前仅仅用过SurfaceView当做显示摄像头数据,没有深入
2016-11-10 14:25:46 7815 3
原创 微服务之Spring Boot 简单搭建
spring-boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。它不再需要繁琐的XML配置,能够自动发现并自动处理复杂的依赖管理。Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。Spring Boot 支持Maven和Gradle构建系统,可以打包成jar或者war。具体使用可以选择按照http://project
2016-08-28 00:51:39 2855
原创 试水Bilibili/ijkplayer-Android-Demo
对ijkplayer提供的Demo进行精简优化。ijkplayer的编译请查看上一篇LINK官方提供的Demo的代码还是挺多的,甚至还用了otto,需要对官方的demo进行精简,去除一些用不到的代码。首先需要的是ijkplayer-{arch},ijkplayer-java两个库,exo是Google提供的新的播放器(介绍),这里不需要,直接砍掉。其次是ijkplayer-example里的,我们
2016-08-26 18:45:15 10852 6
原创 探究 Dagger2
Dagger2是Dagger的分支,早期有square开发,现在由谷歌公司接手维护。主要实现了依赖注入(DI)的思想,对象不在具体使用的地方进行实例化,而是在其他地方进行统一管理。最大限度的进行解耦。Dagger2 使用注解的形式来标示注入和提供实例等操作,但基于运行效率,混淆问题等原因的考虑,Dagger2去除了Dagger1中使用的反射,选择了编译时注解,而非运行时注解。首先来看看Dagger
2016-08-26 18:41:17 1502
原创 使用图片作为TextView的字体颜色(前景?)
在dribbble上看到一个效果 https://dribbble.com/shots/2918663-INVES-profolio-cover,如下图:就想如果用Android来实现该怎么做呢?首先想到的是,把图片当做ViewGroup或者TextView的背景,在dispatchDraw()或者onDraw()里面使用PorterDuffXfermode进行DST_IN进行扣取,实际上试过之后,
2016-08-26 14:19:27 1104
原创 试水Bilibili/ijkplayer-Android
ijkplayer 是Bilibili基于ffmpeg开发并开源的视频播放器,支持播放本地网络视频,也支持流媒体播放。支持Android&iOS.系统:Mac os 10.11.1 NDK: ndk-r12b Androd Studio 2.1.2
2016-08-04 17:30:58 16474 5
原创 使用编译时注解方式实现View注入(Android Studio)
ButterKnife是一个强大的View注入,事件注入的框架,现模仿ButterKnife的方式,使用编译时注解实现View的注入的Demo。基本的原理在上一篇文章中(https://www.zhangningning.com.cn/blog/Android/android_rentention.html)已经做了说明,这篇主要是实现一个在Activity中实现Bind View的注解。先整体说
2016-05-24 00:00:22 6709 4
原创 体验Android ORM之DBFlow
DBFlow综合了 Active Android, Schematic, Ollie,Sprinkles 等库的优点;不通过消耗性能的反射而通过注解实现,性能好(Referer);https://github.com/Raizlabs/DBFlow1.为什么使用DBFlow? 如果要执行下面这一条SQL语句:SELECT * FROM Ant where type = 'worker' AND
2016-04-12 01:14:19 6555 6
原创 解决Spinner有时不回调onItemSelected
在使用Spinner的时候有时候需要在用户点击下拉的任一项时都要出发一个事件,但有时候Spinner不会回调onItemSelected方法,尤其是下拉中只有一个元素的时候。永远不会回调onItemSelected方法。找了半天,有说加flag的,有说监控onTouch事件的,都不是很理想,还不如直接分析源码:首先找到setOnItemSelectedListener,在AdapterView.j
2015-06-10 00:20:00 4318
原创 Android 突破 65K Methods
由于业务需求导入了Google Play Service 的库,编译直接报错。经查发现超出65K个方法,一个Dex已经无法包含。开发用的Android Studio,首先在 build.gradle的defaultConfig中添加multiDexEnabled true,来突破突破65535的限制,编译成功,但运行起来后直接报一些类似微信等的第三方库NoSuchMethodException异常
2015-06-09 23:52:33 2765
原创 Android设置沉浸式状态栏时改变状态栏的颜色(只对MIUI V6可用)
Android支持在API 19及以上使用沉浸式状态,但在MIUI V6下如果扩展的颜色比较浅,会导致状态栏的文字无法看清。在Android4.4设备上支持沉浸式状态栏,只需要添加values-v19/styles.xml 下添加 <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.NoActionBar"><item
2015-04-27 19:09:58 7593 3
原创 使用谷歌地图 Javascript版
谷歌称Map JavaScript V3版是同时为PC和移动设备开发的,使用Html5。首先需要在 Google Console 申请KEY,创建 一个 Browser key ,简单demo就可以使用:<!DOCTYPE html><html> <head> <title>Asynchronous Loading</title> <meta name="viewport"
2015-04-07 13:27:30 4381
原创 Android 国内集成使用谷歌地图
由于众做周知的原因在国内使用谷歌地图不太方便,在开发中如果直接使用会出现些问题。但国内的如百度地图,高德地图等都无法提供详细的国外地图数据,所以研究一下喽,,,使用 Google Maps Android API v2使用谷歌提供的SDK,Android Studio开发。首先保证SDK Manager中 Google Play service服务已经安装。 2.新建一个工程GoogleMapDe
2015-03-31 13:56:40 38365 26
转载 Android官方技术文档翻译——ApplicationId 与 PackageName
本文译自androd官方技术文档《ApplicationId versus PackageName》,原文地址:http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename。本文地址:http://blog.csdn.net/maosidiaoxian/article/details/417
2015-02-10 14:44:13 1188
原创 解决Android Webview 加载一些网页出现白板现象
Webview 加载一些链接出现白板现象,经过调试onLoadResource 已经正常执行,也就是资源文件都已经成功加载,onReceivedSslError也没有回调到,用自带浏览器和UC都是正常,证明链接本身没有问题,Webview也正常运行,没有出现错误,那就是Webview的配置问题了。经过N个测试,把webView.getSettings().setJavaScriptEnab
2015-02-02 18:00:02 24213 5
原创 Android Webview 加载外部html时选择加载本地的js,css等资源文件
在使用WebView加载网页的时候,有一些固定的资源文件如js的jquery包,css,图片等资源会比较大,如果直接从网络加载会导致页面加载的比较慢,而且会消耗比较多的流量。所以这些文件应该放在assets里面同app打包。要解决这个问题需要用到API 11(HONEYCOMB)提供的shouldInterceptRequest(WebView view, String url) 函数来加载本
2015-01-27 17:11:31 15049
转载 MapReduce原理与设计思想
简单解释 MapReduce 算法一个有趣的例子你想数出一摞牌中有多少张黑桃。直观方式是一张一张检查并且数出有多少张是黑桃?MapReduce方法则是:给在座的所有玩家中分配这摞牌让每个玩家数自己手中的牌有几张是黑桃,然后把这个数目汇报给你你把所有玩家告诉你的数字加起来,得到最后的结论拆分MapReduce合并了两种经典函数:映射(M
2014-12-05 10:41:29 2999
原创 集成Dubbo服务(Spring)
Dubbo是什么?Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。Dubbo[]是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分包含:远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型
2014-11-24 18:05:11 115915 27
原创 Android混淆打包出错,出现类似 there were 133 duplicate class definitions.
Android混淆后打包时出现打包失败,
2014-11-24 10:44:53 11369 5
原创 Android 读取Manifest文件下Application 等节点下的meta-data自定义数据
Android在提供了meta-date使用键值对的形式实现自定义配置。一般使用中作为渠道标识。可以用在<application>,<activity>,<activity-alias> ,<provider> ,<receiver>节点下。所有的值存储在同一个Bundle里面,可以使用 PackageItemInfo.metaData渠道这些数据。
2014-11-14 11:48:25 13137
转载 一些软件设计的原则
一个好的程序员通常由其操作技能、知识水平,经验层力和能力四个方面组成。在这里想和大家说说设计中的一些原则,我认为这些东西属于长期经验总结出来的知识。这些原则,每一个程序员都应该了解。但是请不要教条主义,在使用的时候还是要多多考虑实际情况。其实,下面这些原则,不单单只是软件开发,可以推广到其它生产活动中,甚至我们的生活中。
2014-11-13 10:39:03 859
原创 Android,iOS打开手机QQ与指定用户聊天界面
在浏览器中可以通过JS代码打开QQ并弹出聊天界面,一般作为客服QQ使用。而在移动端腾讯貌似没有公布提供类似API,但是却可以使用schema模式来启动手机QQ。
2014-10-29 15:43:37 33933 21
转载 Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
本文主要内容是讲解一个视图View或者一个ViewGroup对象是如何添加至应用程序窗口中的。 下文中提到的窗口可泛指我们能看到的界面,包括一个Activity呈现的界面(我们可以将之理解为应用程序窗口),一个Dialog, 一个Toast,一个Menu菜单等。 首先对相关类的作用进行一下简单介绍:
2014-10-23 19:42:33 887
原创 Android ProgressBar的动画效果
ProgressBar<ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminateDrawable="@drawable/progress_my_style" style="?android:attr/progress
2014-10-23 18:12:17 5159
转载 drawable文件夹详解
QVGA使用ldpi,虽然有不同尺寸,但都是120dpi左右;HVGA同理;如下图;-finger 用于触摸屏的设备-hdpi 近似于240dpi的高级显示密度的屏幕-mdpi 近似于160dpi的中级显示密度的屏幕-ldpi 近似于120dpi的低级显示密度的屏幕-land 横屏显示
2014-08-20 10:23:09 915
原创 通过Apache将tomcat的转为用80端口的二级域名访问
一般使用tomcat发布Java web项目使用www.xxx.com:8080/appname/xxxservlet来访问一个简单的服务,这样会‘暴漏’应用名(当然你也可以改掉),看起来也不规范,需要填写端口(当然你也可以直接发布到80端口,但是如果多个系统比如有一个PHP就不得不考虑了)。Apache使用80端口来将不同的请求转发到tomcat的不同的应用,就是所有的服务都来自80端口。
2014-07-29 17:25:59 8789 1
原创 Android 解决ListView在使用多个布局的同时使用convertView进行缓存时导致ListView下面有空白的问题
在使用ListView时,在Adapter里面使用convertView会提高ListView的性能,提升100%?但今天发现在listView同时加载不同的View的同时会导致ListView最底下有一块空白,可能是恰巧吧,导致这样的原因可能是加载了几个不同的View,而他们的高度不同,数量也不同,系统无法准确计算ListView的总高度。在 BaseAdapter里面提供了两个回调函数来指
2014-07-29 15:21:41 3062 2
原创 Android仿iOS7的UISegmentedControl 分段
Android仿iOS7的UISegmentedControl 分段, 这里只简单做了两个按钮的,效果图..
2014-07-18 18:16:05 10361 10
原创 Android 通过网页打开自己的APP(scheme)
通过用手机的浏览器(内置,第三方都可)访问一个网页,实现点击一个链接启动自己的应用,并传递数据。
2014-07-09 17:35:59 66218 23
原创 Android Asynchronous Http Client--Android 开源的网络异步加载类
整理Android Asynchronous Http Client的使用Android Asynchronous Http Client(AHC)一个回调式的Android网络请求库概括:AHC是基于Apache的HttpClient 库,所有的网络请求过程在UI线程之外进行,而回调是在Handler里面处理。也可以再Service或者后台程序里面使用,这个库会自
2014-06-26 14:29:54 7347 2
原创 解决Android 中Edittext在执行setError时有时不显示文字
在使用EditText时可以使用setError来显示一个tip来提示
2014-06-19 19:38:24 5895
转载 RESTful API 设计指南
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备……)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现“API First”的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。我以前写过一篇《理解RESTful架构》,探讨如何理解这个概念。
2014-06-17 11:44:40 1023
翻译 A Swift Tour(初识Swift)
原文:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.html#//apple_ref/doc/uid/TP40014097-CH2-XID_1A Swift Tour在编写一个新语言的第一个程序
2014-06-06 12:55:35 1448 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人