
工具
文章平均质量分 95
半瓶子响叮当
知行合一,格物穷理
展开
-
动手写一个Android运行时权限申请帮助工具
目录概述运行时权限申请流程如何实现如何使用项目地址感谢概述Android系统不断更新,对隐私安全方面的控制越来越强。因为隐私安全条款不断更新,有时候会因为运行时权限专门发一个app补丁版本。原生申请运行时权限相对来说较为麻烦,而且都是模板代码,如果直接使用,则需要重复大量的模板代码。所以,有必要为运行时权限申请写一个方便工具。github中不乏现成的优秀的运行时权限项目,如:AndPermission,还有一些甚至使用了AOP来实现的。那么为什么还要重复造轮子?不是开玩笑,主要是因为闲的,时间允许原创 2020-07-25 16:39:45 · 303 阅读 · 0 评论 -
浅谈Android SDK开发
概述最近接到一个需求,把现在开发的app,包装成一个SDK,对外提供接口,让第三方应用集成我们app的能力。简单描述一下项目的现状,一个壳工程module:app_shell,项目主要代码在app module,其它还有简称为:lib1,lib2,lib3,lib4,lib5,五个module,其中,app依赖lib1-lib5,lib1-lib5部分相互之间也有依赖。前前后后投入来大概五个工作日的时间,勉强实现封装app及其依赖的模块为一个aar。为什么要这么久?难道不是改app的build.grad原创 2020-07-16 00:41:58 · 2336 阅读 · 0 评论 -
Android屏幕适配方案: AutoDensity&smallest-width
目录前言一、屏幕适配的重要概念1.1 屏幕尺寸、屏幕分辨率、屏幕像素密度1.2 px、dp、dip、dpi1.3 mdpi、hdpi、xdpi、xxdpi1.4 values-sw[xyz]dp二、smallest-width适配方案三、AutoDensity适配方案四、最佳做法五、参考前言一个Android开发工程师,在其入门后遇到的第一个考验估计就是屏幕适配。按照谷歌的适配规则,使用wrap_content、match_parent、dp等,当UI工程师换一个设备验收时,提出各种问题。这时候,估计很原创 2020-06-07 14:38:43 · 1487 阅读 · 2 评论 -
AspectJ 编程指南
title: AspectJTM 编程指南created: ‘2020-05-19T07:52:07.055Z’modified: ‘2020-05-19T10:27:10.370Z’AspectJTM 编程指南AspectJ 团队Copyright © 1998-2001 Xerox Corporation, 2002-2003 Palo Alto Research Center, Incorporated. All rights reserved.摘要:本编程指南描述了Aspect语言,.翻译 2020-06-07 22:16:16 · 647 阅读 · 1 评论 -
Android WorkFlow 助你轻松构建复杂流程
概述有时候会遇到这样一种需求,原创 2020-05-17 23:07:59 · 1038 阅读 · 0 评论 -
一行代码实现Android App指引
目录概述指引需求分析入门级指引升级版指引指引需求的抽象指引的技术实现指引的要素:Shape封装指引步骤:GuideInfo绘制指引要素:GuideView管理指引:GuideManager承载GuideView的载体:GuideDialog接入项目关键技术点定位高亮区域绘制高亮的View区域高亮区域点击事件优缺点项目地址总结概述前几周app改版,在修改老代码的过程中发现了一个指引,让我想起很久以前项目里指引实现是在布局文件中添加布局,并在代码中插入很多非业务的代码,这样写感觉不好。指引本只是一个不太重要原创 2020-05-16 13:54:34 · 2707 阅读 · 4 评论 -
一个Socket通信案例
概述到了新的公司,开始新的工作已两个月有余,从一个坑跳到了另一个坑,就直接说说现在遇到的问题吧。公司的产品客户端需要通过socket和C++后台交互,既然是socket,也就这么一个流程:通过配置文件,解析服务器的地址和端口;打开socket通道,建立和服务器的长链接;和服务器通信;应用退出,关闭连接。问题在这里,和服务器通信,拿到一个完整的消息后,通过解析指令的参数,进行不同的处理,我接手的代...原创 2020-01-30 14:00:19 · 766 阅读 · 0 评论 -
从观察者模式的角度分析 Lifecycle-aware components
前言使用RxJava2有一段时间了,由于没有认真去研究过,一直停留在简单的使用阶段,更准确地说是在Retrofit中配合RxJava2CallAdapter使用RxJava2的强大能力。心血来潮(迫切需要),想了解下RxJava2可能导致的Activity内存泄漏问题。先是看了一下RxLifeCycle,浏览了不少博客,其中有一篇说到,RxLifeCycle的作者已经不推荐使用这个项目了,而推荐...原创 2019-09-01 09:20:19 · 435 阅读 · 0 评论 -
如何优雅地使用GreenDao
前言数据库是Android开发中的重要部分,通常我们不会使用SDK中的Sqlite API,而是使用第三方的ORM框架,如 GreenDao。在实际的开发中,发现一件比较有意思的事(体现了无组织无纪律):同一个小组里面的几个同事,每个同事都有自己的使用方法,有的同事比较狂放不羁,不在乎细节,写一个包含Database和DaoSession对象的单例模式,满世界调用getDaoSession(),...原创 2019-01-12 21:04:45 · 314 阅读 · 0 评论 -
一个Android Log框架
一个易用、高性能、可扩展的 Android Log概述Log 需求欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowc...原创 2019-01-03 22:45:30 · 895 阅读 · 0 评论 -
Jenkins 持续集成之使用批处理替换文件中的目标字符串
Jenkins 持续集成之使用批处理替换文件中的目标字符串一、背景在 Android 项目开发中使用 Jenkins 持续集成,将可以解耦的 module 作为一个独立项目,然后在 Jenkins 上自动打包,推送到 maven 私服,最后主工程通过 gradle 将 aar 包添加到项目中。一般情况下,当 module 的版本发生改变时,只需要修改build.gradle 中的 versio...原创 2018-09-27 22:12:02 · 4147 阅读 · 0 评论 -
七牛云存储之文件上传(Android)
七牛云存储之文件上传项目中要用到七牛云存储,用于存储用户的文件数据,于是,看了一下七牛的文档(Android SDK 和 Java SDK),写了一个 demo 。本文记录一下 android 端上传文件到七牛服务器的步骤,并对七牛云存储使用的一些问题作出了一些思考。demo 实现了单个文件上传,多个文件上传,多个文件排队上传。详情请参考七牛官方文档。一,注册七牛账号,并创建存储空间注册...原创 2018-09-26 20:12:06 · 4635 阅读 · 3 评论 -
搭建Maven(Nexus)私服—实现模块化开发
搭建Maven(Nexus)私服概述在开发过程中,需要集成Unity的资源,有190M。由于Unity修改比较频繁,git仓库越来越大,很快就达到了2G,由于还有很多其它module,每次构建都要很长的时间。为了减少clone的下载时间,提高构建速度,尝试将Unity资源打包为一个aar资源上传到maven私服,然后通过依赖引入到主工程,其它独立的module也可以这样操作。这样做的优点有一,...原创 2018-09-25 16:05:49 · 486 阅读 · 0 评论 -
使用Gradle构建Android应用
使用Gradle构建Android应用最近重读 Gradle for Android 一书,发现以前囫囵吞枣式的阅读只了解到点皮毛。重读一次,收获颇丰,想着结合实践,做做笔记。本文从统一配置依赖管理,高级配置,多模块构建,创建构建变体,运行测试,构建过程,创建任务和插件,Jenkins持续集成设置,这几个方面总结gradle是如何配置,构建,测试 Android项目的。一、统一配置依赖管理使用And原创 2017-11-06 23:53:34 · 429 阅读 · 0 评论 -
Git 常用命令与分支管理模型总结
Git 常用命令与分支管理模型总结Git Reference Git 分支模型本文目的是列出常用的git命令,并简单总结一下Git分支管理模型:分支管理 查看创建分支提交 合并多个commit选择合并某个commit解决冲突 文本文件冲突zip文件冲突版本回退 回退到某个commit回退到某个操作查看日志log分支管理模型 master 分支develop 分支f原创 2017-10-15 23:24:34 · 428 阅读 · 0 评论