Android
cc_want
DEEP CODE.
展开
-
Android Studio 3.6.1不能正常加载 flutter 插件
问题:升级Android studio 后,flutter插件找打到了,在plugins中也无法搜到解决办法:1.手动下载对应可用版本的Dart 插件,这里为了方便,我已经挑选好了,复制下面链接可直接下载https://plugins.jetbrains.com/files/6351/72602/Dart-192.7761.zip?updateId=72602&pl...原创 2020-03-23 17:46:52 · 2917 阅读 · 2 评论 -
Android Viewpager开源库
常见ViewPager 开源库名字 介绍 图片 SwipeCardsView Android高仿秒拍热榜的卡片滑动和左右飞出效果 image SCViewPager 一个简单的ViewPager扩展,提供基于滚动的动画,如iOS的JazzHands image carouselview 自带小圆点的viewpager ...原创 2018-10-19 08:58:35 · 797 阅读 · 0 评论 -
Android 蓝牙开发常用UUID表
Sample Services0000180d-0000-1000-8000-00805f9b34fb Heart Rate Service 0000180a-0000-1000-8000-00805f9b34fb Device Information Service Sample Characteristics. 00002a37-0000-1000-8000-0...原创 2018-10-16 08:51:43 · 32881 阅读 · 0 评论 -
Android常用系统广播
广播名 说明 备注 Intent.ACTION_AIRPLANE_M 关闭或打开飞行模式时的广播 Intent.ACTION_BATTERY_CH 充电状态,或者电池的电量发生变化 电荷级别改变,只能在代码注册 Intent.ACTION_BATTERY_LO 电池电量低 Intent.ACTION_BATTERY_OK...原创 2018-09-03 10:21:04 · 13220 阅读 · 0 评论 -
BluetoothAdapter:Unhandled exception: java.lang.RuntimeException: Can't create handler inside thread
将原本运行在6.0上的程序安装在4.4的系统上之后出现了一个诡异的异常BluetoothAdapter:Unhandled exception: java.lang.RuntimeException: Can't create handler inside thread分析原因发现:1.在Android 6.0 系统中使用BLE扫描BluetoothAdapter.LeScanCal...原创 2018-07-11 10:10:04 · 23782 阅读 · 1 评论 -
Android 定时任务中打印日志只显示一次或打印时间不对
最近开发遇到一个神坑,记录一下我在Android中使用定时任务,为了检测定时任务是否运行正常,所以我这样写此处并没有用TimerTask,因为我发现当前类中已存在Handler对象,就直接拿Handler来用了,当然效果是一样的,随后,我先了一个神奇的问题,日志中第一次出现"---------------------"的时候,发现等了好长时间都没有打印下一次日志,后来我又换了TimerTask进行...原创 2018-04-13 17:19:51 · 866 阅读 · 0 评论 -
Picasso报错 java.io.IOException: Cannot reset
Picasso是android端的一个强大超级好用的图片加载器,比ImageLoader更加方便,但是今天在使用的时候发现一个问题,在一加手机上出现了显示不了图片的问题,当然并不是所有的图片都显示不了,是部分图片,至于原因这就必须得分析Picasso源码了,后来我打印了Picasso的错误信息,发现提示:java.io.IOException: Cannot reset我现在的原创 2017-05-26 21:27:10 · 1378 阅读 · 6 评论 -
从源码分析Animation动画与setVisibility(View.GONE)之间的小坑
什么是坑?就是我们按我们正常逻辑不会出现的问题出现了就是坑比如说:有这样一个例子,app中有一个按钮,给此按钮加了一个动画效果,使之能像星星一样一闪一闪的,当点击这个按钮时,隐藏按钮。但是后来运行的时候发现,按钮并没有完全消失,这样的话我们就不得不先看一下View源码,分析一下原理了首先分析一下setVisibility方法的具体实现,我们一直往下走,找到关键位置在这里我们原创 2017-09-07 12:37:44 · 885 阅读 · 0 评论 -
【android】android中使用commons-codec框架处理各种加密解密
在java中有一个框架叫commons-codec框架,它是由apache出品的开源项目之一,其中集成了大量的解密加密工具类,是一个强大的解密加密工具包,其中包括常用的md5,des,base64,url,sha1,sha128,sha256等各种加密解密类其实这个框架虽然是用于在java中的,但稍作改变,就能够在android中使用,此乃android之福,不可多说也此框架在an原创 2017-08-09 10:19:51 · 5399 阅读 · 5 评论 -
Android全屏解决方案
未root的系统,必须通过pc端运行adb命令进行设置,因此请开启开发者选项中的adb调试模式,用usb连接电脑和手机,运行下面的代码强制开启全屏模式,立即生效:全屏沉浸:adb shell settings put global policy_control immersive.full=*沉浸状态栏:adb shell settings put global policy_c...原创 2018-10-30 15:22:27 · 24014 阅读 · 0 评论 -
Jenkins自动化构建普通Android项目配置
1,新建任务,构建自由风格的软件项目2,配置信息描述信息随意填写3,选择参数化构建过程,添加一个选项参数BUILD_TYPE,用来区分编译环境4,源码管理中,添加GIT仓库地址,并选择构建分支5,构建触发器和构建环境如果没有特殊需要,可以不用选择6,添加构建,选择invoke gradle script,并选择gradle版本,填写Task任务...原创 2018-11-12 15:34:14 · 17981 阅读 · 0 评论 -
TextView在ListView,RecyclerView,ViewPager中不显示
在复杂的ViewGroup中需要重绘UI的时候:如ListView,RecyclerView,ViewPager中,如果在xml中使用了singleLine属性,可能导致setText无效根本原因:singleLine属性由于性能问题(尤其在非常复杂的ViewGroup中性能问题会凸显)官方已经不推荐使用了,建议用maxLines来代替;...原创 2019-06-22 09:22:17 · 239 阅读 · 0 评论 -
Android中不要使用递归,可能导致OOM
在Android中请不要使用递归,原因在于,一次递归过程中所有new object均不会被虚拟机主动回收,只有在递归结束后才会被虚拟机回收原创 2019-05-31 15:56:05 · 793 阅读 · 0 评论 -
Android打印依赖树
在android studio的terminal中输入gradlew -q :app:dependencies --configuration compile原创 2019-05-17 16:14:05 · 2396 阅读 · 0 评论 -
android RecyclerView中Item的TextView跑马灯效果
设置方法:1.设置xml,添加以下属性android:singleLine="true"android:ellipsize="marquee"android:marqueeRepeatLimit="marquee_forever"android:scrollHorizontally="true"注意:不要添加 android:selectAllOnFocus="true" ,如...原创 2019-03-11 15:04:55 · 2228 阅读 · 2 评论 -
流浪地球(编程第三区)
/** * ------------------------------------ * 中国 Android 编程第三区交通委提醒您: * ------------------------------------ * * 风 格 千 万 种 * 规 范 第 一 条 * 代 码 无 注 释 * 同 事 两 行 泪 * * ...原创 2019-03-07 17:05:35 · 749 阅读 · 1 评论 -
【android】手写一套Java的Handler程序,深入理解Android消息机制
发现无论是Windows还是Android,它们都是利用消息机制来运行一个程序,使得程序能够持久的运行下去,那它们之间都有共同的特点,都属于CS端那么为了更好的深入理解android的消息机制,我打算手写一个Java版的Handler来模拟Android程序运行1.首先我创建了一些空白类,其中Main类是我们程序的入口2.接着我们开始手写Looper在Looper中我们知道有两...原创 2019-01-10 14:45:33 · 5400 阅读 · 0 评论 -
Android中使用Sonar进行代码质量分析
以Android Studio为例,在项目根目录下的build.gradle文件中1.添加仓库地址allprojects { repositories { maven { url "https://plugins.gradle.org/m2/" } }}2.在build.gradle文件结尾,添加app...原创 2018-11-19 08:42:13 · 8557 阅读 · 2 评论 -
Jenkins自动化构建Atlas Android项目配置
项目中集成了Atlas,如何能够使用Jenkins完成自动化构建呢?比如生成安装包和远程组件,生成动态部署包等1,首先在参数化构建过程中添加一些参数2,在构建中,选择shell3,添加shell脚本GRADLE_HOME=/Users/zto/.jenkins/tools/hudson.plugins.gradle.GradleInstallation/G...原创 2018-11-12 16:02:19 · 16617 阅读 · 2 评论 -
【android】点击事件穿透解决方案
在一个布局中使用了FrameLayout,将布局分为上下两层,结果在操作上层布局空白处时,触发了下层布局按钮的点击事件,解决方法如下:在上层根布局添加如下属性即可android:clickable="true"原创 2017-07-18 11:30:47 · 2981 阅读 · 0 评论 -
【android】EditText输入银行卡号每四位空一格
完美仿微信银行卡输入框,输入每4个数字就自动添加一个空格代码如下:import android.text.Editable;import android.text.Selection;import android.text.TextWatcher;import android.widget.EditText;/** * Bank card input TextWatcher原创 2017-07-13 15:53:12 · 5200 阅读 · 1 评论 -
【Android】识时务者为俊杰,轮子造还是不造
在面向对象语言编程中我们都知道不要重复造轮子(也就是不要重复的去写一段代码),但我们知道么,在有些时候轮子造多了会有反效果,那么我们就来说说这些反效果吧。1.最近刚到一家产品公司,我的工作就是维护优化修复现有app,并定时发布新的版本,最近头疼的问题是因为我刚来,对上一个人的代码不是很熟悉,经过几天的熟悉了解之后,发现上一个人写的代码很牛逼,让人一看就知道是大神写的代码,各种封装,各种重复原创 2016-08-29 12:00:43 · 735 阅读 · 0 评论 -
【android】Android studio 开发的app突然报NoClassDefFoundError
一个比较坑的问题用android studio 开发的app突然报NoClassDefFoundError坑了我几个小时,怎么都找不到问题,然后突然想到是不是方法数超出限制了,结果做了一下dex分割,竟然立马就好了说说解决方法:在build文件中添加:compile 'com.android.support:multidex:1.0.0'并在defaultConfi原创 2016-08-31 17:50:57 · 3541 阅读 · 4 评论 -
【Android】日常开发中常见的坑,新手必看
1.ListView中的坑在我们使用ListView的addHeaderView方法时,如果此时你同时设置了ListView的OnItemClickListener监听事件时,你一定会发现onItemClick方法中的position参数返回不准确的问题,此时我们可以这样。onItemClick(AdapterView parent, View view, int position, lo原创 2016-08-31 16:34:51 · 533 阅读 · 0 评论 -
【android】 使用观察者模式更新用户资料
1.前言我们来看一个场景,某android客户端打开后需要登录,登录后进入主界面,此界面顶部显示用户头像和昵称,某客户需求在点击用户头像后可编辑用户资料。于是,小编就开始着手实施,在实施前小编开始仔细思考了一下,在更新完资料后返回主界面,此时主界面信息没有刷新,如何在资料更新完成后刷新主界面呢?小编毫无疑问,立马想到了用广播通知刷新,但是广播这个东西成本太高,需要在AndroidManifes原创 2016-04-20 15:42:25 · 13783 阅读 · 4 评论 -
【android】解码.9图片及xml
1.前言在公司项目开发中,往往遇到需要一些图片资源来对android界面进行美化,然而有些时候,小公司没有美工怎么办?so easy.下载现成apk,解压res资源,然后发现,图片被编译了?没关系,接下来我们来编写程序解密.9图片 解密后 2.实现首先从下面附件中下载apktool.jar包,对于apktool我们就不用多说了,接下来在eclipse新建java工程,导原创 2016-05-12 09:51:29 · 3770 阅读 · 0 评论 -
Android使用XLog打印与收集程序运行详细日志
开源项目XLog的介绍及使用原创 2015-09-09 19:41:19 · 4751 阅读 · 0 评论 -
【android】消息传递利器EventBus的使用
EventBus是一个事件发布和订阅的框架。可以替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息。优点是开销小,简化代码。源码:https://github.com/greenrobot/EventBus在Android studio中的集成方法如下:第一步:在整个项目的build.g原创 2016-09-22 17:27:18 · 722 阅读 · 0 评论 -
【Android】对EditText输入金额添加限制及监听
场景分析:项目中我们需要在一个EditText控件中输入金额,限制只能输入数字,可以为小数但保留2位小数,同时监听EditText一旦发现输入金额大于0那么使界面上的提交按钮可点。第一步:设置EditText的xml属性<EditText android:id="@+id/edt_money" android:layout_width="wrap_content"原创 2016-09-08 16:34:48 · 4218 阅读 · 0 评论 -
【android】禁止EditText自动获取焦点
有时候在页面加载的时候,我们需要默认EditText不自动获取焦点,以防止自动弹出输入法解决方法如下:在EditText的父布局中加入以下属性:android:focusable="true"android:focusableInTouchMode="true"示例:<LinearLayout android:layout_width="match_parent"原创 2017-07-12 21:42:49 · 1239 阅读 · 0 评论 -
【android】使用部分模拟器出现兼容问题Error inflating class EditText
在使用部分模拟器(此处我使用的是逍遥模拟器)会出现很奇怪的错误,但在其他手机上或模拟器上没有出现解决方法如下:在style.xml文件中 @color/colorPrimary @color/colorPrimaryDark @style/EditTextStyle原创 2017-07-03 09:56:54 · 3706 阅读 · 0 评论 -
【android】仿支付宝金额千分位格式化
格式化double,进行千分位分组,并保留最后两位小数,因为是金额,所以绝对不能四舍五入,效果如下:此处不能使用单纯的String.format来实现,因为默认String.format会自动四舍五入,例如: public static void main(String[] args) { System.out.println(formatPrice(16513.09)); ...原创 2017-07-11 12:04:30 · 7607 阅读 · 0 评论 -
Picasso图片加载闪烁问题解决方案
在android中我们使用了Picasso作为图片加载库,但有时候我们在来回切换fragment的时候会发现存在闪烁的问题,例如某app主界面有3个模块,分别是首页,资讯,我的。在首页和资讯中有大量的图片,“我的“里面有用户头像,并且每次“我的”界面显示时都会刷新当前界面的数据,我们在三个fragment中来会切换,会发现“我的”里面的用户头像会出现闪烁情况,出现这种情况的原因是我们没有设置加载中原创 2017-05-27 11:22:29 · 3026 阅读 · 2 评论 -
【Android架构】ActionBar模块化架构设计
日常开发中,我们为了保证UI的可控性,必须对某些源码进行修改或者扩展,尤其是在Android原生ActionBar这里,如何能够做到完全的UI可控性和开发的便利性,我们务必会做出一些相关设计,接下来我们会设计一个合适的架构方案。AppCompatActivity是Android5.0之后推出的,已被加入到V7兼容包中,它继承自FragmentActivity,是google推荐使用的,现在原创 2017-03-27 14:59:03 · 503 阅读 · 0 评论 -
【Android】开发干货-技术分享之AndResGuard资源混淆的使用
AndResGuard是微信团队的开源项目,它的作用就是将apk中的资源文件如layout等文件名进行混淆处理,增加逆向难度。Github 开源项目原创 2016-12-23 10:59:03 · 11082 阅读 · 0 评论 -
【android】Android Studio修改代码提示快捷键
1.在eclipse中,我们使用alt+/可以很方便的跳出代码提示,但是习惯了eclispe的我们如何在Android studio中使用代码提示功能呢?Android studio代码提示快捷键ctrl+alt+空格2.修改Android studio快捷键在eclipse中它的名字叫做Content Assist,然而在Android studio中它的名字叫做Class原创 2016-12-22 13:52:29 · 11668 阅读 · 0 评论 -
【Android】提升用户体验,ListView显示加载中动画及空数据视图
场景分析:在app开发中,我们为了保证用户体验往往需要在有ListView的地方添加加载中动画及数据为空的时候的提示界面,那么让我们一起来用最简单高效的方法去实现一下吧第一步:设计空数据布局文件view_empty.xml<cn.xx.widget.EmptyView xmlns:android="http://schemas.android.com/apk/res/androi原创 2016-09-08 17:29:28 · 6551 阅读 · 0 评论