android开发技巧总结
文章平均质量分 66
六道对穿肠
android开发程序员,写过小程序,前端. 喜欢用技术解决实际问题.
展开
-
android 创建Model 解决无法依赖传递问题 , 实现 sdk 依赖关系的传递
介绍我现在创建了一个应用A, 一个库工程 B , B 远程依赖了库工程C ,A远程依赖B工程. B 是通过Maven 发布成远程依赖库. B 作为一个通用的库工程,发布到了Maven上,就可以比较简单的被各个项目引入.如下图:问题目前存在一个问题, 当A使用B中的代码,B使用到了C中的代码,提示C中的代码找不到. 运行就崩溃.分析存在这个问题,说明把B上传到Maven上的时候,没有把C的依赖传递下去,导致A使用B, B调用C 导致类找不到 崩溃.解决需要把依赖传递下去.目前我采用的是我之原创 2021-12-30 18:23:15 · 2289 阅读 · 0 评论 -
android studio使用 maven push 插件上传私有maven - 已成功使用到项目中
android studio使用 maven push 插件上传依赖库原创 2021-12-21 15:39:36 · 2124 阅读 · 0 评论 -
android studio maven 拉取代码出现 bad gateway 502
解决android studio maven 拉取远程库 502问题原创 2021-12-14 15:18:23 · 2778 阅读 · 0 评论 -
android—性能优化3—网络优化
文章目录网络优化正确的认识流量消耗网络优化维度其他网络请求误区网络优化工具选择Network Proifiler抓包工具stetho流量优化如何判断APP流量消耗偏高如何测试,测试方案线上线下流量获取线上流量获取方案NetworkStatsManager (线上可以使用这个)Android流量统计TrafficStats类,统计API_8以上重启以来的流量数据统计.前台后台流量获取后台获取流量方案数据缓存数据状态更新数据压缩其他网络优化优化DNS解析连接池复用,HTTP版本自身的优化网络质量请求监控okh原创 2021-05-02 10:45:29 · 774 阅读 · 2 评论 -
android性能优化实践与总结(包含启动,内存优化)
应用中性能优化实践与总结(精心总结)任何优化都需要进行检测,以数据说话,优化前和优化后有了怎样的提升[TOC]启动优化检测启动时间检测工具任选其一hugo 插件 ,自己定义时间开始和结束手动计算时间.AOP 工具 AspectJadb的am start命令启动Activity测量耗时从点击应用的启动图标開始创建出一个新的进程直到我们看到了界面的第一帧, 这段时间就是应用的启动时间adb shell am start -W 包名/.第一个activity冷启动ActiviT原创 2021-04-19 14:58:37 · 541 阅读 · 0 评论 -
android—性能优化2—内存优化
文章目录性能优化:工具:memory profilerLeakCanaryarthookepic 库java内存管理机制java 内存回收机制Android内存管理机制Dalvik与 Art区别Low Memory Killer内存抖动解决内存泄漏解决第一个内存泄漏点内存很大的bitmap第一个地方 生成二维码的时候每隔一定时间会动态创建二维码解决方案:如何定位问题native 内存一直在增加 分析发现个问题 android studio 插线后使用profile内存自动升高, 感觉是android stu原创 2021-04-07 14:35:28 · 483 阅读 · 0 评论 -
备份Edittext编辑框字数限制ui以及逻辑
ui布局 etContent.addTextChangedListener(new TextWatcher() { //记录输入的字数 private CharSequence enterWords; private int selectionStart; private int selectionEnd; private int enteredWords;原创 2021-03-17 16:22:29 · 157 阅读 · 0 评论 -
error Failed connect to github.com 443原因 Github更换认证方式
Github更换认证方式,github近期调整了认证方式,不再允许第三方工具基于账号密码来访问和管理项目了. 除非使用github DeskTop 自带的客户端. 好坑啊. 我一直再用android studio 自带的提交工具很方便. 现在就得更换了.使用ssh教程:第一步:您可以使用 SSH 连接到 GitHub。https://docs.github.com/cn/github/authenticating-to-github/connecting-to-github-with-ssh第二步原创 2021-03-02 14:44:56 · 1375 阅读 · 0 评论 -
android--性能优化1--首屏优化&启动速度与执行效率检测
文章目录实战篇traceview 工具使用操作步骤操作步骤2systrace 工具使用操作步骤AOP 工具 hugo 的使用使用方法效果BlockCanary 使用AOP 工具使用 AspectJ操作步骤优化方案:异步线程优化:针对主线程需要异步线程的结果所采用的方案 CountDownLauch:使用启动器我的APP内应用效果理论篇启动时间测量方式1 ADB命令启动时间测量方式2 手动打点 使用LaunchTimer工具类记录时间traceview 工具使用 使用说明Thread 说明: 看图可知有12原创 2021-02-02 22:49:29 · 633 阅读 · 0 评论 -
android 解决同一界面多个网络请求导致dialog对话框反复显示消失问题
PS :平时遇到问题到网上搜索博客,作者总是先列出方案1,方案2,方案3, 最后才把最优的解决方式放到最后.遇到这种情况我总是很焦急, 我心说: “我这得赶紧解决问题,哪有空看你分析啊”, 后来倒是明白了,把自己解决问题的思路写下来,实际上是学习了这种思维方式. 所以我也准备里这么做.PS: 着急的可以直接看最后的解决方案.问题:场景:当一个界面同一时间有七八个甚至十几个网络请求,这个时候对话框是如何展示的. 我的项目中效果就是对话框只显示一次就消失了. 因为我采取的方案是如果当对话框有并发创原创 2021-01-17 00:24:43 · 2641 阅读 · 6 评论 -
android蓝牙通用协议抽取
蓝牙开发协议封装一般通讯协议格式类似下面这样一般在蓝牙开发中数据的传输是以16进制形式传输的,比如 00 06 00 61 01 00 66,那么遇到这种16进制的数据,我们需要把它转化成实体类, 可以写一个基类,专门处理数据的长度,索引,和校验 . 如果有其他数据类型 只要继承这个基类 就可以制定自己的数据内容. 基类需要做基本的解析数据和生成数据, 子类只需要生成数据和解析数据即可.基类如下import com.tongtailian.www.stir.utils.LogUtil;原创 2020-10-24 16:46:02 · 347 阅读 · 0 评论 -
jenkins 下自动构建 生成二维码(不使用蒲公英 fir)
最近蒲公英每个版本只能下载10次了. 我感觉未来免费的东西会越来越不好,所以准备利用Tengine或者tomcat搭建自己的下载平台.先说下如何实现吧:首先jenkins自动打包apk后, 把apk的地址暴露给外网下载(具体方式可以是nginx指定location位置.也可以拷贝apk到指定的目录下载,建议还是用jenkins下的路径,因为这样jenkins会定时清理,如果拷贝出来的话会消耗硬盘存储空间).然后.利用二维码生成器生成一个二维码,吧这个二维码也暴露出来让外网可以访问.二维码的内容就是这原创 2020-09-28 17:30:59 · 914 阅读 · 0 评论 -
持续集成- 企业微信机器人在Jenkins集成的项目中的应用
[TOC]首先感谢李朋分享的企业微信群机器人的妙用一文,现在已给我们项目用上了.下面分享记录下企业微信机器人在中化油管家中的应用场景.以及集成步骤.集成步骤右键群组 添加机器人.右键点击群机器人查看资料点击webhook地址. 里面有机器人配置说明++特别特别要注意:一定要保护好机器人的webhook地址,避免泄漏!不要分享到github、博客等可被公开查阅的地方,否则坏人就可以用你的机器人来发垃圾消息了。++文档地址https://work.weixin.qq.com/h原创 2020-07-23 14:09:36 · 2143 阅读 · 2 评论 -
android 多个edittext 判空监听 让Button动态设置是否可点击
工具类package com.sinochem.www.car.owner.utils;/** * Created by liuml on 2020/7/16 11:28 */import android.text.Editable;import android.text.TextWatcher;import android.view.View;import android.widget.TextView;import java.util.ArrayList;import java原创 2020-07-16 13:56:26 · 753 阅读 · 2 评论 -
android studio快捷键 备份
提取局部变量:Ctrl+Alt+V提取全局变量:Ctrl+Alt+F提取方法:Shit+Alt+M原创 2017-01-22 16:54:23 · 1171 阅读 · 0 评论 -
android studio3.0 新建资源文件,或者修改xml无效
1更新android studio3.0后,新建的资源文件,只能clean后才会出现,R文件不自动更新?去掉无用的插件. 比如ButterKnife 等插件 可以把ButterKnife 降级使用2,修改xml 后必须clear 或者rebulid 才能生效这个问题困扰我很久 结果发现是打渠道包导致的 在gradle 中: 我把productFlavors 注释 掉 ,然后在de...原创 2018-03-03 16:28:59 · 5283 阅读 · 14 评论 -
圆角备份
圆角的xml<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/white" >&原创 2018-03-08 15:30:13 · 145 阅读 · 0 评论 -
版本更新 下载APK asynctask下载文件 保存到本地
下载文件 保存到本地 状态栏提示package com.polyguide.Kindergarten.util;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Context;impor原创 2015-12-11 17:24:13 · 1309 阅读 · 0 评论 -
android自定义(无埋点)收集用户行为统计 (非常方便 可以自己拓展)
EventCollect这是收集用户行为统计的代码reademe:需求:: 现在App端需要写一个咱们自己的统计控件。要求: 可以监控用户的所有行为,例如用户谁(没有登录的情况使用UUID),进入那个页面,进入的时间,在这个页面操作了什么(点击了那个按钮,或者是点击了列表那个列),离开页面时间,以及其他统计信息,例如版本号,手机系统版本,用户当前网络,用户位置,用户单次使用App时长等。用户是否把原创 2017-07-20 10:05:16 · 6960 阅读 · 4 评论 -
Android开发帮助工具库 可查看网络请求 收集carsh 切换服务器
主要功能 1 查看网络请求地址 2 收集carsh 3 切换服务器ip效果图 网络的(https://github.com/liudao01/LibTest/blob/master/demo.gif)好处 好处 给后端人员看 自己也不用每次看开发工具这里是1.4.1 版本的 (自用的 贡献出来)*****测试工具库 集成步骤****引入Add it in your root build.g原创 2017-04-01 12:26:08 · 2038 阅读 · 0 评论 -
代码获取渠道名
/** * 获取application中指定的meta-data 调用方法时key就是UMENG_CHANNEL * @return 如果没有获取成功(没有对应值,或者异常),则返回值为空 */ public static String getAppMetaData(Context ctx, String key) { if (ctx == nu原创 2017-06-24 17:46:23 · 1958 阅读 · 0 评论 -
android 使用 charles抓包http https 问题 持续更新
charles解决安卓https抓包乱码1、help->ssl proxying->install charles root certificate2、help->ssl proxying->install charles root certificate on a mobile device or remote…3、Proxy->ssl proxying settings->add4、在安卓手机上原创 2017-06-02 09:54:10 · 1002 阅读 · 0 评论 -
android通过gradle切换域名,替换app的String资源(修改app名称,图标)
需求解决思路调试信息的含义配置文件jenkins shell命令如何使用域名图标的修改TODU需求现在项目已经实现jenkins自动打包,现在需要在jenkns中的shell修改一个参数即可打包生成各种版本的app,例如 生成:测试环境有调试信息的app预上线环境有调试信息预上线环境无调试信息正式环境有调试信息,正式环境(发包版本无调试信息)...原创 2018-02-24 17:58:56 · 6486 阅读 · 0 评论 -
百度地图工具类
/** * @author liuml * @explain * @time 2018/1/12 14:59 */public interface BDMapResultInternet { /** * 地图poi点点击响应回调 * @param mapPoi poi点对象 * 名称:mapPoi.getName(); 坐标:mapPoi.ge...原创 2018-03-28 17:24:07 · 968 阅读 · 0 评论 -
LOG工具类 带tag的
public class LogUtils { /** * 错误 * 2014-5-8 * @param clazz 类名 * @param msg 输出信息 */ public static void e(Class<?> clazz, String msg) { if (Config.isDebug) { Log.e(c原创 2016-04-19 15:44:39 · 555 阅读 · 0 评论 -
本地缓存请求数据,根据条件重新上传数据的工具类
需求: 项目的支付流程中 下单-支付-通知 目前支付可用自己支付中心api,也可用银联的sdk ,在使用自己支付中心的时候不用刷新订单因为支付中心已经做了这个操作.但是使用第三方银联sdk 的时候需要在银联回调之后通知后台,调取后台支付完成接口.由于可能存在使用银联sdk 支付成功,但通知失败情况(网络或设备异常).所以需要缓存请求数据,在适当条件下重新调用更新订单接口,分析以及解决方案 :...原创 2019-09-11 16:16:35 · 204 阅读 · 0 评论 -
记录 android 计算工具类问题
记录计算工具类精度问题 /** * 提供精确加法计算的add方法 * @param value1 被加数 * @param value2 加数 * @return 两个参数的和 */ public static double add(double value1,double value2){ BigDecimal b1...原创 2019-08-06 15:29:18 · 297 阅读 · 0 评论 -
warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions
NDK 开发中出现下面的错误. 说是 在类初始化非静态数据成员是C++ 11扩展 意思是 必须让编译器是c++11 的扩展xyyyplayer/src/main/cpp/XYCallJava.h:16:20: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-exte...原创 2018-10-22 15:11:34 · 5383 阅读 · 0 评论 -
RxJava 学习笔记
例子1 最基础的使用关键字链式调用例子2 线程变换相关操作例子3 操作符使用FlatMap 使用例子1 最基础的使用流程: 1. 注册观察者活动 2. 设置观察线程 3. 注册订阅者(观察者)关键字Observable 被观察者Observer 观察者subscribe 注册观察者Disposable 一次性的,可任意处理的...原创 2018-07-21 17:18:09 · 225 阅读 · 0 评论 -
DialogFragment 从底部弹出对话框 动态设置高度 拷贝代码直接用
效果图需求现在需要实现 底部弹出对话框 并且 弹出的高度 需要刚好在顶部的一个view下面. 这个view的高度不确定.思路整个window的高度减去顶部标题栏和这个view的高度 就是这个对话框的高度实现抽象类public abstract class BottomDialog extends DialogFragment { @Ov...原创 2018-07-07 17:28:40 · 1662 阅读 · 0 评论 -
android 启动页白屏优化, 优化内存
一般来说都在欢迎页面主题设置里面设置一张图片现在我的项目里这张图片太大了 也没有进行压缩过. 其实我这里的图片是一个白色背景加上一个Logo,这个logo在底部并且距离底部有一点距离. 采用的方式:使用 layer-list名字是 welcome_background.xml<?xml version="1.0" encoding="utf-8"?>&...原创 2018-07-05 17:34:46 · 319 阅读 · 0 评论 -
idea插件开发实战--给finvdviewByMe添加搜索定位功能
一直在用finvdviewbyme 很不错的一个插件. 今天对它进行魔改效果用的时候遇到的问题用finvdviewbyme 的过程中经常会遇到一个问题.现在xml布局中有几十个控件,并且都有id,现在我需要加几个控件,那么想找到这个id的时候,我需要在这都多控件中一个个肉眼寻找. 非常痛苦. 早就想解决这个问题,这两天抽时间给findviewbyme添加了这个功能...原创 2018-05-25 18:10:02 · 1817 阅读 · 0 评论 -
gradle中集成360加固 自动加固- 自动化构建续
加固步骤实际操作第一步 官网下载第二步 在加固包中添加 jiagu.sh 文件第二步 gradle 配置注意点加固步骤从360官网下载加固包在加固包中添加jiagu.sh 文件在gradle中配置 生成APK后 执行jiagu.sh命令实际操作第一步 官网下载官网下载: 注意 你如果是windiws电脑 需要下载 window......原创 2018-05-05 11:15:12 · 1621 阅读 · 0 评论 -
Jenkins的Gradle实现android 自动打包 并且上传蒲公英
直接进入正题. 目标: 实现 使用jenkins 自动打包 android 后上传蒲公英 让测试人员每次都下载最新的apk文件.第一下载jenkins 下载地址 https://jenkins.io/index.html 还有就是下载哪一个 我截图 我下载的是左边的那个 , 左边的貌似是稳定版版 右面貌似是安装 版. OK 下好以 后 是一个 jen原创 2017-01-07 20:18:25 · 7262 阅读 · 0 评论 -
把自己的库共享给别人
在开发过程中,使用第三方优秀依赖库是个很常见的问题,有的时候是maven,或者gradle, 或者sbt,大部分库工程,都会有对应的gradle,maven依赖代码,但是有的没有,尤其是使用的snapshot的依赖的时候,虽然有源代码可以自己down下来,然后源码级别的依赖,或者自己导出jar包依赖,这个时候,神器jitpack就出现了。使用灰常简单,去jitpack官网: 点这里 以Github转载 2016-12-09 16:22:28 · 904 阅读 · 1 评论 -
3D gallery 之 使用 FancyCoverFlow
FancyCoverFlowhttps://github.com/davidschreiber/FancyCoverFlow github 地址最近项目要实现 3d gallery 的效果 github上已经有 了 把他作为第三方 依赖包引入到工程效果图有好几种实现方式根据项目的样例 我这里采用其中原创 2015-01-08 10:16:12 · 3770 阅读 · 3 评论 -
给自己的备忘录 surfaceview 有时候未填充整个屏幕 原因
给自己的备忘录 surfaceview 有时候未填充整个屏幕 原因出现两次了 结果就是因为 图片的位置没放对mdpi xmdpi 都试一下原创 2016-06-08 10:58:01 · 974 阅读 · 0 评论 -
Fragment嵌套ViewPager切换后数据消失ViewPager空白问题
http://m.blog.csdn.net/article/details?id=50633619转载 2016-06-07 16:05:21 · 535 阅读 · 0 评论 -
AndroidStudio配置SVN以及使用代码管理
http://www.bubuko.com/infodetail-926704.html转载 2016-06-02 13:44:54 · 426 阅读 · 0 评论 -
android 音乐播放工具类MediaPlayer
上代码public class Player implements OnBufferingUpdateListener, OnCompletionListener, OnPreparedListener { public MediaPlayer mediaPlayer; // 媒体播放器 private SeekBar seekBar; // 拖动条 priva原创 2016-05-27 13:43:23 · 3064 阅读 · 0 评论