- 博客(82)
- 资源 (11)
- 收藏
- 关注

原创 EasyPermissions解决Zxing扫一扫6.0权限问题
无图无真相,先来个真相: 最开始的时候,我不知道是哪个权限,所以我就把Google6.0需要用户手动开启的权限做了一个汇总: 源码请见:https://github.com/MrXiong/ZxPermissions EasyPermissions的用法请见:https://github.com/googlesamples/easypermissions 1、其实主要就是控制
2016-09-21 13:53:37
5809

原创 DownloadManager+MaterialDialog下载进度和6.0安装APK和“”应用未安装“”问题
首先来个图: 附个链接: material-dialogs再附个链接(以微信的APK下载地址为例吧): http://gdown.baidu.com/data/wisegame/8d5889f722f640c8/weixin_800.apk系统下载器DownLoadManager本身下载在通知栏中都有进度条,但是我想自己手动弹出一个dialog显示进度,所有就有了使用内容观察者ContentO
2016-06-22 21:22:11
8286

原创 android adb端口被占用解决方案
第一步: 开始->cmd->控制台输入adb start-serverC:\Users\zx>adb kill-servererror: unknown host serviceC:\Users\zx>adb start-serveradb server is out of date. killing...error: unknown host serviceerror: could n
2015-12-04 17:45:44
14516
原创 Android调用go语言 - 详细版
Android调用go语言就一句话:Android Studio 引入go代码打包的aar进行代码调用 准备工作:Android 方面: 1、JDK环境 2、Android SDK 3、Android NDKGo方面: 1、Golang环境 2、gomobile安装Android方面JDK,SDK,NDK我就不说了,注意环境变量配置的时候,不要出错(比如空格) 安装好后,...
2020-05-29 13:38:16
2595
转载 GitFlow工作流程
什么是GitflowGitflow是基于Git的强大分支能力所构建的一套软件开发工作流,最早由Vincent Driessen在2010年提出。最有名的大概是下面这张图。在Gitflow的模型里,软件开发活动基于不同的分支:master 该分支上的代码随时可以部署到生产环境develop 作为每日构建的集成分支,到达稳定状态时可以发布并merge回masterFeatur...
2019-11-18 11:37:08
377
原创 Java并发集合——ArrayBlockingQueue ,LinkedBlockingQueue,ConcurrentHashMap
先看几个图了解下基本结构: 其中:ArrayBlockingQueue extends AbstractQueue implements BlockingQueue LinkedBlockingQueue extends AbstractQueue implements BlockingQueueConcurrentHashMap extends AbstractMa...
2018-02-25 10:24:08
839
原创 Android 灵活切换下拉刷新(策略模式+反射)
最近想换下拉刷新了,但是不想舍弃以前的,就想能不能两个都并存,在使用之前配置一下,配置A就使用A,配置B就使用B。(原理就是通过反射来控制使用相应的策略) 使用很简单,只需要修改模式类型就可以直接切换下拉刷新的模式了://模式一private int refreshMode = RefreshContext.SWIPE_REFRESH;//模式二private int refreshM...
2018-02-10 12:53:28
583
原创 Android 自定义Log 多模式
先上个效果图: 模板一: 模板二: LOG常用的方法有以下5个: Log.v() Log.d() Log.i() Log.w() Log.e() 。分别对应下图,除Assert 1、Verbose 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v(“”,”“);2、Debug 的输出颜色是蓝色的,仅输出de...
2018-02-08 10:24:24
1410
原创 工厂模式实现并发请求多个接口 (同步后台数据实现离线APP)
背景:客户现场没有网络,需要在APP上面录入信息并上传后台服务器解决方案: 使用APP之前,先(下载)同步后台基本数据,同步完成后,客户直接使用离线版进行数据录入即可。具体实现: 方案一、登录APP后,后台扔过来一个文件,客户端去下载(不利于更新数据) 方案二、登录APP后,分在线和离线两种模式,在线模式同步后台的基本数据后,离线模式就可以直接使用了。 采用
2018-02-06 20:38:26
2382
原创 Android版本更新 ~ 版本号判断
先贴一个后台返回的一般版本更新接口格式:拿到后台返回的数据后,对比版本号,如果相等,当前已是最新版本,后台返回的code大于本地应用的code,则允许下载更新。假设目前已判断到后台code > 本地code下一步为了节省流量,不用每次都下载,判断下本地是否已经下载了apk,而没有安装,如果已经下载了,那么就直接安装更新,但是有个问题,本地的apk和你现在的apk是否是同一个版本呢?
2018-01-19 17:23:17
2167
原创 Nexus 5X 使用Zxing扫描倒立
Nexus 5X 使用Zxing扫描倒立的原因说是Nexus 5X 的摄像头是倒装的。 今天简单解决下,方案是判断机型如果是Nexus 5X,就倒立摄像头//解决nexus5x扫码倒立的情况 if(android.os.Build.MANUFACTURER.equals("LGE") && android.os.Build.MODEL.
2018-01-08 09:29:41
1440
1
原创 Kotlin基础(六)接口、泛型
接口定义:Interface 接口名{//各种属性或方法定义}//接口和泛型interface IBaseDao<T> { val city : String get() = "北京" var grade : Int fun <T>add(t : T) fun del(id: Int) fun update(id: Int, stu: Student)
2017-12-26 10:59:12
949
原创 Kotlin基础(五)类
定义一个可以被继承的类:open关键字 属性列表:constructoropen class BaseDao constructor(var sex : Boolean, var name : String) {}//类ADao继承了BaseDao 类,可以选择是否设置默认值//有默认值的情况下,可以不传参数class ADao(sex : Boolean = false, name: St
2017-12-26 10:57:26
292
原创 Kotlin基础(四)控制流和函数
控制流if elseif / while / when / for break continuevar array = arrayOf(1, 2, 3, 4, 5) //遍历 for (a in array) { if (a > 2) { print(a) } } //范围内 for (a in 5..2
2017-12-26 10:49:57
253
原创 Kotlin基础(三)集合类型
集合基本这3大类型 Array 有序可重复 Set 无序不重复 Map无序可重复//默认数组10个1var lists = Array<Int> (10,{1})//创建数组//数组不可改变(类似Java中的Arrays.asList())var list = arrayOf(10,1,2,6,7,8,9)var set = setOf<Int>(77,88,99)
2017-12-26 10:41:18
440
原创 Kotlin基础(二) 基础类型和操作符
整数型Java中int a = 1;Kotlin中var a = 1 或 var a : Int = 1 浮点型Java中float a = 1.125fdouble a = 1.125Kotlin中一般只用双精度double,不用floatvar a = 1.125 或 var a : Double = 1.125 布尔型Java中boolean b = false;Kot
2017-12-26 10:32:25
286
原创 Kotlin基础(一) 常量、变量、可见性修饰符
常量预期范围内恒定不变的量(不可再被赋值) 给常量一个值,叫“赋值”,即 val 常量名 = 值在Java里面一般大写定义:比如FragmentActivity的TAGprivate static final String TAG = "FragmentActivity";public static final int MSG_REALLY_STOPPED = 1;Kotlin里面这样写(va
2017-12-26 10:25:10
731
原创 Android API 25 (7.1.1) Nougat (Android.jar子包整理)
一直想了解下Android里面的所有东西,今天简单整理一下随意打开一个项目,以25为例,这里截取部分包 所有包的整理如下:
2017-11-27 17:25:10
1709
原创 升级Android Studio 3.0 时卡在Building 或者refresh
今天升级Android Studio 3.0,不幸的是,我又遇到了卡在Building 或者无限refresh的问题。开始我以为要下载,所以就没管它,等一会儿就好了,可以等了20分钟了,发现还是卡在这里,后来我发现我的本月免费lanter高速流量用完了,对,它确实在下载。但是很慢,关键是我看不到进度啊。于是我百度了一把查看哪些软件占用网速 https://jingyan.baidu.com/alb
2017-11-15 15:01:22
1294
原创 Java API学习(三)java和javax在Android中的应用
在线中文api:http://tool.oschina.net/apidocs/apidoc?api=jdk-zhJava版本:1.8Android版本:23java的api有java和javax2个包java和javax都是Java的API包,java是核心包,javax的x是extension的意思,也就是扩展包,它和java各有各的用处了解完java和javax,下面看看它们在Android
2017-09-22 09:51:12
3885
原创 Java API学习(二)javax包
在线中文api:http://tool.oschina.net/apidocs/apidoc?api=jdk-zhJava版本:1.8Android版本:23java的api有java和javax2个包java和javax都是Java的API包,java是核心包,javax的x是extension的意思,也就是扩展包,它和java各有各的用处上篇了解了java包中的内容,今天了解下javax包
2017-09-21 19:31:27
10307
原创 Java API学习(一)java包
在线中文api:http://tool.oschina.net/apidocs/apidoc?api=jdk-zhjava的api有java和javax2个包java和javax都是Java的API包,java是核心包,javax的x是extension的意思,也就是扩展包,它和java各有各的用处 先看java包,java下有14个包 1、java.applet 提供创建 applet
2017-09-20 16:01:53
1373
转载 Java开发十大必备网站
本文由 ImportNew - 张文太 翻译自 programcreek。欢迎加入翻译小组。转载请见文末要求。以下是我收集的Java开发牛人必备的网站。这些网站可以提供信息,以及一些很棒的讲座, 还能解答一般问题、面试问题等。质量是衡量一个网站的关键因素,我个人认为这些网站质量都很好。接下来,我会跟大家分享我是如何使用这些网站学习和娱乐的。或许你会认为有些网站适合任何水平的开发者,但是我认
2017-09-20 11:48:12
647
转载 最流行的Java API类
原文:https://www.programcreek.com/java-api-examples/?action=index&page=11. java.util.List中 (26331)28个常用方法/字段。2. java.util.ArrayList中 (25724)26个常用的方法/领域。3. 产生java.io.I
2017-09-20 11:35:55
817
原创 Android Camera结合Zxing优化扫码
先上个图: 由于之前集成的zxing扫塑料上面的码不太好扫,决定优化。Zxing的解码我们优化不了了,经过测试,是因为亮度不够,所以最终选择在灯光和放大焦距完成了最终的优化。 设置模式只需要几行代码即可://得到Camera对象Camera camera = CameraManager.get().getCamera();Camera.Parameters parameters = came
2017-08-04 12:44:09
5882
1
转载 谷歌官方详细介绍 Android Studio 3.0 Canary 1
原文:http://developers.googleblog.cn/2017/05/android-studio-30-canary-1.html文 / Google Android 产品经理 Jamal Eason借 Google I/O 2017 的东风,Android Studio 3.0 今天就可以在我们的 Canary 发布渠道上下载。Android Stu
2017-06-20 13:58:07
1615
原创 DownloadManager+NumberProgressBar+Executors线程池实现多并发下载APK安装
在github上面苦苦寻找都木有找到有关Android自带下载器DownloadManager多并发下载的,于是就决定自己试试写一个。 先上个图: 我的上篇文章 http://blog.youkuaiyun.com/u013277740/article/details/51737080 只实现了单个下载安装,这次升级一下实现步骤: 1、初始化一个缓存线程池cachedThreadPool = Exec
2017-06-19 15:26:54
2153
原创 郭霖的LitePal版本历程
官方(持续更新…):https://github.com/LitePalFramework/LitePalAndroid数据库高手秘籍(零)——前言 http://blog.youkuaiyun.com/guolin_blog/article/details/38083103 Android数据库高手秘籍(一)——SQLite命令 http://blog.youkuaiyun.com/guolin...
2017-05-04 17:55:04
17368
5
原创 Android自定义View写柱状图
首先借鉴了3个案例然后进行了整合,在原有基础上增加了点击和移动事件: http://blog.youkuaiyun.com/nugongahou110/article/details/49517725 http://z.sye.space/2015/10/20/ChartView/ http://blog.youkuaiyun.com/zhanggang740/article/details/51769423?loc
2017-04-25 15:10:49
2124
原创 Android 文件存储(一)Environment
1、常量 //与Environment.getExternalStorageState();返回的状态进行比较String MEDIA_BAD_REMOVAL//SDCard卸载之前被删除时的存储状态。String MEDIA_CHECKING//如果SDCard存在并进行磁盘检查。String MEDIA_MOUNTED//如果SDCard存在,并在其安装读/写访问。String ME
2017-04-14 14:07:16
767
原创 Android Studio运行main方法
这样想做一些测试就很简单了实现步骤如下: 1、当前项目右键->new->Module->Java Library 2、修改你创建javaLib的build.gradle文件改为(重要):apply plugin: 'java'apply plugin: 'application'mainClassName = 'java.MainRun' 3、来个main方法就ok了pa
2017-04-13 14:58:22
10878
转载 WebView·开车指南
北京市东城区首席Bug布道师开山之作,一整月交通事故血泪经验,教你如何快速成为‘伪’老司机,开启WebView飙车之旅。Tips由于WebView的用法实在太多,如果您只是想查询某个功能的使用——建议Ctrl+F(Commad+F)在本页面搜索关键字查找。文章给前半部分大多是方法的介绍,若嫌琐碎可直接拖到最后看代码演示。Thanks for reading~!٩(♡ε♡
2017-04-12 18:22:44
539
原创 第九章四大组件的工作过程(一)Activity的工作过程(Android开发艺术探索)
阅读本章将了解: 四大组件:Activity、Service、BroadCastReceiver、ContentProvider的工作过程,而不是使用9.1 四大组件的运行状态 除了BroadCastReceiver,其他都必须在Manifest中注册 BroadCastReceiver既可以在Manifest中注册,也可以通过代码注册; 在调用方式上,Activit
2017-04-10 18:22:52
938
原创 第八章理解Window和WindowManager(Android开发艺术探索)
8.1、window和windowManager 为了分析window的工作机制,我们需要先了解如何使用windowManager添加一个window代码如下:WindowManager manager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);WindowManager.LayoutParams layoutPar
2017-03-20 11:09:27
866
原创 第七章Andorid动画深入分析(Android开发艺术探索)
阅读本章将了解: Android 平台提供了一套完整的动画框架,在Android3.0之前有两种动画, 一种方式是补间动画 Tween Animation、另一种叫逐帧动画 Frame Animation(也称Drawable Animation );Android3.0以后增加了属性动画 Property Animation Tween Animation、Frame Animat
2017-03-16 15:38:11
970
原创 第六章Andorid的Drawable(Android开发艺术探索)
阅读本章将了解: Drawable是没有大小概念的,当用作view的背景时,Drawable会被拉伸到view同等大小6.2、Drawable的分类 Drawable的种类繁多,常见的有BitmapDrawable、ShapeDrawable、LayerDrawable、StateListDrawable6.2.1、BitmapDrawable :最简单的drawable我们可以通过xm
2017-03-15 14:50:07
861
原创 第五章理解RemoteViews(Android开发艺术探索)
5.1、remoteViews的应用(主要用于通知栏和桌面小部件) 通知栏和桌面小部件不能直接去更新view,因为2者的页面都运行在其他进程中,确切来说是系统的SystemServer进程,为了跨进程更新页面,RemoteViews提供了一系列的set方法进行更新。5.1.1、在通知栏的应用: 通知栏除了默认的效果还可以自定义布局,下面分别说明这2种情况:默认的布局:Notificati
2017-03-13 18:03:31
959
原创 第十五章Android性能优化(Android开发艺术探索)
15.1.1布局优化1.布局优化的思想:减少布局文件的层级(层级少了,绘制时的工作量就少了)方法一:减少布局文件的层级 优化步骤: 1.1.删除布局中无用的控件和层级 1.2.选择简单高效的viewGroup 排行榜:FramLayout/LinearLayout>RealativeLayout(原因:RealativeLayout功能复杂,布局过程需要更多的cpu时间)
2017-03-08 11:48:56
364
原创 第三章View的事件体系(Android开发艺术探索)
阅读本章你将了解:1.MotionEvent(运动事件) 2.TouchSlop(触摸坡;最小滑动距离,每个手机大小不一) 3.VelocityTracker (速度追踪) 4.GestureDetector(手势检测器) 5.Scroller(弹性滑动) 3.1 view的基础知识什么是view view extends View ViewGroup extends View
2017-03-08 11:39:13
403
原创 第八章Activity与Activity调用栈分析(Android群英传)
学习本章你将了解:Activity的生命周期与工作模式 Activity调用栈管理 8.1、Activity系统采用activity栈的方式管理activity 8.1.2、Activity的形态1、active/running :栈的最顶层,并与用户交互 2、paused : 被覆盖,失去了与用户交互的能力,状态、成员变量都保持着,内存不够时,会回收 3、stoped : 完全
2017-03-03 12:39:27
567
Android Studio 多模式Log打印
2018-02-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人