Android
文章平均质量分 56
Coder蒋
移动开发道路上的奔跑者!
github:https://github.com/jiangwenzhong
展开
-
更改Gradle镜像下载地址
全局更改Gradle镜像下载地址如果配置GRADLE_USER_HOME路径则在${GRADLE_USER_HOME}下新建init.gradle文件如果没有配置则在默认路径${USER_HOME}/.gradle/下新建init.gradle文件。init.gradle文件内容如下:allprojects { repositories { def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/pub原创 2022-01-13 11:39:10 · 5118 阅读 · 3 评论 -
如何断点调试gradle插件
如何断点调试gradle插件编写gradle插件跟编写其他工程代码类似,都是掌握了基本的语法和约定好的写法之后就可以按照自己的业务逻辑来实现相应的功能需求了。因此在编写gradle插件的时候我们也希望能够像写其他程序一样断点调试,这样对于我们定位问题是有很大帮助的。调试方法第一步:将我们写好的gradle插件在工程中应用第二步:新建一个remote,并命名第三步:启动要调试的gradle插件的任务./gradlew {插件名} -Dorg.gradle.debug=true原创 2021-04-28 21:30:35 · 748 阅读 · 0 评论 -
Gradle多渠道打包动态修改apk文件名字
背景随着新版本Android studio的发布,与之配套使用的Gradle也有很多变化,下面主要列举对比新老版本自定义apk生成文件名的方式。新版本Android studio 下载地址Gradle3.0前后版本变更记录 详情Gradle3.0修改apk文件名的方式android { ... applicationVariants.all { variant -> ...原创 2019-07-20 10:46:55 · 4960 阅读 · 1 评论 -
Android判断应用是否在前台显示的方式
背景在开发中,经常会需要判断应用是否在前台,根据应用的状态做逻辑处理。如根据应用是否在前台来判断是否需要弹框显示后台推送的消息,根据应用是否在前台来判断是否需要停止和开启某些服务,根据应用是否在前台来判断是否需要触发守护进程将主进程拉到前台来显示等。判断方法方式一:根据第一个运行任务栈来判断 public boolean isBackground(Context context)...原创 2019-07-22 11:30:34 · 13287 阅读 · 0 评论 -
各个平台DES加密方式的实现
背景前段时间在跟后台联调敏感数据的加密和解密时遇到了一些问题,设备使用的是android平台提供的des加密方式,后台使用的javax提供的des加密方式和PHP提供加密方式,在对接过程中就出现了同一段字符,在前后端解密得到的字符串不一样,最后经过一段时间的调试,得到了结果一致的实现方式,下面记录下来。实现平台java平台import javax.crypto.Cipher;impo...原创 2019-07-22 17:12:12 · 5074 阅读 · 0 评论 -
Android AES、RSA、MD5、SHA、GZip加密方式实现
文章目录背景加解密AESRSAMD5SHA加解密中用到的工具类项目地址背景最近在项目中需要使用到AES、RSA、MD5、SHA的加解密,整理了工具类,放出来记录一下,完整的源码已经放到github上。加解密AES/** * AES 工具类 */public class AESUtil { private final static String SHA1PRNG = "SHA...原创 2019-07-22 20:57:23 · 3963 阅读 · 0 评论 -
Android性能调优——内存泄漏排查
文章目录背景内存泄漏现象原因常见引起内存泄漏的案例引用类型排查的工具代码背景最近的项目总是遇到运行一个晚上后出现自动退出的问题,从日志分析是系统将应用进程杀掉了,由于ROM本身是我们基于Android7.1定制的,里面加了WatchDog,所以很有可能是由于应用某些异常导致整个系统卡死,从而引起了看门狗程序将应用杀掉,最有可能的原因就是应用程序内存的问题引起的【ROM本身放开了应用获取内存和存...原创 2019-08-08 12:59:26 · 4740 阅读 · 0 评论 -
观察者模式的实际使用——状态监控及恢复策略
文章目录背景背景在实际项目开发过程中,我们常常会用到一些状态监控策略,原创 2019-08-17 15:45:23 · 2948 阅读 · 1 评论 -
Android高效计算——RenderScript
文章目录1 RenderScript简介2 使用RenderScript2.1 环境配置2.2 编写RenderScript文件2.3 在Android framework层调用RenderScript2.4 RenderScript工作流程3 RenderScript运行时层与反射层3.1 RenderScript运行时层3.2 反射层4 内存4.1 内存分配API4.2 静态内存4.2.1 ...转载 2019-08-17 16:58:28 · 4699 阅读 · 0 评论 -
Android高效旋转图片的方式
Android 图片旋转和镜像:Android中图片旋转、镜像都会创建新的Bitmap,而且没法使用缓存,效率较低在需要局部的地方优化:参考附件中代码。优点:1、速度更快(对比matrix的方式速度2-5倍);2、cpu和内存降低(使用同一份缓存);缺点:1、可能存在适配问题。建议:1、建议在可控的硬件上应用;import android.content.Context;im...原创 2019-08-17 17:12:29 · 5128 阅读 · 1 评论 -
Android应用开发性能优化完全分析
1 背景其实有点不想写这篇文章的,但是又想写,有些矛盾。不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结、我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只给出啥啥啥不能用,啥啥啥该咋用等,却很少有较为系统的进行真正性能案例分析的,大多数都是嘴上喊喊或者死记住规则而已(当然了,这话我自己听着都有些刺耳,实在不好意思,其实关于性能优化的优质博文网上也还是有...转载 2019-08-18 00:38:00 · 1747 阅读 · 0 评论 -
Android开发性能优化简介
作者:贺小令随着技术的发展,智能手机硬件配置越来越高,可是它和现在的PC相比,其运算能力,续航能力,存储空间等都还是受到很大的限制,同时用户对手机的体验要求远远高于PC的桌面应用程序。以上理由,足以需要开发人员更加专心去实现和优化你的代码了。选择合适的算法和数据结构永远是开发人员最先应该考虑的事情。同时,我们应该时刻牢记,写出高效代码的两条基本的原则:(1)不要做不必要的事;(2)不要分配不必要...转载 2019-08-18 14:46:55 · 1551 阅读 · 0 评论 -
Android studio关联build.gradle源码
1、正常情况下,项目中的wrapper文件夹下的gradle-wrapper.properties文件按如图所示配置就可以查看build.gradle源码,但是有时候由于studio的bug,可能这样配置后不管用2、此时将all改为bin3、此时打开任意一个build.gradle文件,会有如图所示的提示,点击“ok,apply suggestion!”,等待构建完成后就可以关联源码了。...转载 2019-10-03 18:56:41 · 1474 阅读 · 1 评论 -
动态修改应用名称和logo的方式
场景在开发过程中,尤其是涉及到2B的产品,我们往往是在一个工程中做多个软件的定制开发,其中比较简单和常见的就是应用名称和应用logo的动态变更,这些变更跟app绑定,当App编译完成后就不再修改,这样的场景往往就是在打包编译是动态配置即可。方法这些需求其实Gradle已经为我们考虑到了,并且提供了一些可行的方案来支持。方式一 :使用manifestPlaceholdersbuild....原创 2019-07-20 10:45:24 · 4325 阅读 · 0 评论 -
Android日志打印的注意事项
背景在Android开发过程中难免会需要日志输出的,日志在开发调试、异常跟踪以及排查问题上都有很大的帮助,但是打印日志是一个损耗性能的动作,会占用程序执行资源,如果处理不好的话有可能会造成ANR等问题,前段时间在为公司整理基础开发库,其中涉及到日志记录库,遇到了一些坑,所以下面就日志相关的内容整理一些需要注意的关键点。记录日志的方式System.out.println()这种方式一般是...原创 2019-07-20 10:44:48 · 4679 阅读 · 0 评论 -
在程序中执行logcat命令获取日志
背景在日常开发和调试过程中,我们经常需要用到logcat的日志来帮助我们定位问题,在生产环境也有类似的需求,当程序出现崩溃、anr等异常时,我们除了需要捕获异常日志外,往往需要抓取一段完整的logcat日志,给我们研发同学去分析定位问题,但是生产环境是复杂的,如果当发生异常后,设备很有可能被重启了,这时候我们的logcat日志往往就丢失了,无法事后再去抓取,所以这时候就需要我们在程序中提供一种自...原创 2019-07-20 10:44:00 · 6961 阅读 · 0 评论 -
解决软键盘遮挡输入框的问题
根据前人经验总结普通Activity(不带WebView),直接使用adjustpan或者adjustResize如果带WebView:a) 如果非全屏模式,可以使用adjustResizeb) 如果是全屏模式,则使用AndroidBug5497Workaround进行处理。常见方法<activity android:name=".MainActivity" android:...原创 2018-03-21 15:17:48 · 907 阅读 · 1 评论 -
检测应用绘制时间
import android.util.Log;import android.view.Choreographer;/** * Created by sensetime on 18-4-25. */public class SMFrameCallback implements Choreographer.FrameCallback { public static SMFram...原创 2018-04-25 17:00:33 · 680 阅读 · 0 评论 -
适配虚拟按键方案
import android.app.Activity;import android.content.Context;import android.content.res.Resources;import android.graphics.Color;import android.graphics.Rect;import android.os.Build;import android....原创 2018-04-25 17:02:28 · 1293 阅读 · 0 评论 -
Android Service保活攻防
参考1:http://tech.dianwoda.com/2016/10/20/androidjin-cheng-bao-huo-gong-fang/参考2:http://lioil.win/2017/12/19/Android-Alarm_Doze_Standby.html参考3:https://www.jianshu.com/p/adbfea66e3ae参考4:【时钟例子】http://god...原创 2018-04-25 17:07:39 · 999 阅读 · 0 评论 -
FindBugs工具使用
前言对于初学者以及刚刚参加工作的程序猿来说,常常希望能有一种方式或者工具能够帮助我们指出我们书写的代码中那些不合适或者有隐患的地方,让我们书写的代码能够更加高效和安全。FindBugs就是这样一款工具,当我们编码完成后,可以一键检查我们的代码,并罗列出我们代码中有哪些需要优化的地方和可能会出问题的地方。安装首先打开Android studio的设置中的插件,输入findbugs,如下图所示...原创 2018-10-28 22:12:42 · 2933 阅读 · 0 评论 -
Android 平台更加安全的DES加密方式
DES介绍DES是Data Encryption Standard(数据加密标准)的缩写。它是由IBM公司研制的一种对称密码算法。DES是一个分组加密算法,典型的DES以64位(即8个字节)为分组对数据加密,加密和解密用的是同一个算法。它的密钥长度是56位(因为每个第8 位都用作奇偶校验),密钥可以是任意的56位的数,而且可以任意时候改变。DES的安全性DES算法的安全性主要取决于密钥的保密...原创 2018-10-28 22:16:02 · 5172 阅读 · 1 评论 -
兼容Android 19以上版本获取图片路径的方式
##打开相册的方式Intent.ACTION_PICK默认打开图库,打开默认是缩略图界面,还需要进一步点开查看,通常用来选择指定URI下的资源。Intent.ACTION_GET_CONTENT4.4以下默认打开缩略图。4.4以上打开文件管理器供选择,选择图库打开为缩略图页面,选择图片打开为原图浏览,支持多选。Intent.ACTION_OPEN_DOCUMENT(AP...原创 2018-10-28 22:16:56 · 5311 阅读 · 5 评论 -
Android开发规范
前言在项目开发中,拥有统一且得到大家认可的规范是非常重要的,一个好的开发规范不仅可以降低开发人员之间的沟通成本,同时也能减少代码出错的可能。完全靠自己定义一套完整的开发规范是比较困难的,幸运的是,现在很多大厂都有公开自己在生产环境中使用到的开发规范,我们可以参考这些规范并结合我们自己的经验,总结出属于我们自己的开发规范,下面是我自己整理的开发规范。我整理的这套规范是参考阿里提供的java开发...原创 2018-11-10 16:56:39 · 4776 阅读 · 0 评论 -
Android studio 加速拉取依赖的方式
Android studio 加速拉取依赖的方式将https改为http1、jcenter()改为jcenter(){url 'http://jcenter/bintray.com/'}2、添加mavenCentral()使用国内镜像站阿里云镜像站地址:http://maven.aliyun.com/mvn/view从中挑选需要的镜像地址,将其添加到repositories中,如:...原创 2019-07-23 17:42:31 · 2959 阅读 · 0 评论 -
Android查看应用签名、应用签名的方式、系统签名文件转IDE签名文件
文章目录背景查看签名信息方式一:使用keytool工具方式二:使用微信提供的工具方式三:某些在线工具生成应用签名文件方式一:使用keytool工具方式二:使用android studio生成v1和v2签名文件的区别APK签名方式一:使用jarsigner工具方式二:直接使用android studio来签名系统签名文件转IDE签名文件背景APK要想安装到设备上,无论是debug还是releas...原创 2019-07-24 12:54:20 · 4600 阅读 · 0 评论 -
listview 对应的adapter的通用封装
CommonAdapterpackage com.sensetime.senseattendance.adapter;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android....原创 2018-03-19 09:54:23 · 925 阅读 · 0 评论