自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MR CUI的专栏

费丽斯常常对年轻人说: “看看我,如果想说要做什么事情已经太晚了之类的话,请你再好好思考一下!”

原创 python课程系列(一.2.1、Anaconda安装、环境配置及使用)

Python环境安装目前Python有两个大版本,分别是 2.X 和 3.X ,我们的教程基于最新版本 3.6.x 你可以通过终端窗口输入 “python” 命令来查看本地是否已经安装Python以及Python的安装版本。Windows操作系统进入终端方法:win键+R 输入cmd即可进入Windows的终端(Win键是印有Windows图标那个按键或称徽标键,linux中又称super键)...

2019-01-07 17:27:25 378

原创 python课程系列(一.1、python简介)

文章目录Python简介Python 发展历史Python 特点python介绍python的优缺点python解释器Python简介Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。**Python 是一种解释型语言:**这意味...

2019-01-07 17:23:37 1379 2

原创 android屏幕适配问题分析及各种解决方案优缺点分析

从事android开发已有5年之久,项目中遇到的屏幕适配的问题也有n次了,可是有一个很奇怪也很让人头疼的现象让从事多年开发的我很不爽。什么问题呢,就是“适配虐我千万遍,我见适配如初见”,真是想说一句fuck,这次我终于坚决的征服掉了她,下面就来具体讲解征服她的全过程,一定要有决心,耐着性子慢慢看。  本着不重复造轮子的理念,对现有适配方案统统拿来细细研读了一番,得出的结论是已基本可以解决适配问题,但是

2018-12-03 19:27:00 866

原创 Activity启动模式、Intent Flags、taskAffinity、task和back stack总结

参考文章:Android中Activity四种启动模式和taskAffinity属性详解(列出了测试过程,更具说服力)                Android task和back stack详解(官方文档翻译)                android学习记录(十三)Task 和 Activity 回退栈操作。                我打赌你一定没搞明白的Activi...

2018-06-15 12:34:05 304

原创 Android Studio 3.5 打Jar包

task makeJar(type:org.gradle.api.tasks.bundling.Jar) { baseName = "leia" appendix = "media" version = "2.0.0" classifier = "release" //删除存在的// delete 'build/libs/leia-media-1...

2020-04-21 15:06:35 335 1

原创 电量优化 之 导出Bugreport日志

安卓手机为了调试方便有个叫bugreport的东西,可以记录很多日志。上一篇讲了看这个日志的工具如何安装:电量优化 之 Battery Historian安装这一篇记录一下bugreport的生成与导出。测试手机:安卓手机7.0以上抓取日志电脑上装个ADB,只装ADB就行,配下path,这样在任何路径都能直接用adb。SDK很大很大打开调试模式,在关于手机里多按几遍版本号,把开发者...

2020-01-11 11:29:29 479

原创 电量优化 之 Battery Historian安装

一.Battery Historian安装方式1.Docker环境来安装,但是这种方式只支持win10企业版和win10 pro,我的win10家庭版是不能支持的,这里不做介绍。2.通过编译gitbub上面的源码来安装。二.编译gitbub上面的源码来安装1 、GO环境安装:1.1 .下载下载目录:https://golang.org/doc/install,这个好像需要科学上网,我...

2020-01-11 11:00:09 267

原创 内存优化系列之Android studio导出hprof

这里只介绍最新版本(v3.5)的Android studio的生成流程,低版本的推荐:Android studio导出hprof到MAT工具流程3.0之前,以及3.0之后和现在使用的3.5版本流程均不同,注意区分。一.打开profiler方式一:方式二:二.profiler中导出hprof...

2020-01-11 09:19:45 441

原创 内存分析系列之MAT的安装

MAT(Memory Analyzer Tool)顾名思义是一个内存分析工具,是作为Android开发人员必须掌握的主流的工具。由于现在基本全部抛弃了eclipse,所以这里只介绍独立版本的MAT安装流程一. 下载下载地址:http://www.eclipse.org/mat/downloads.php根据自己的软硬件配置选择相应的版本点击下载即可:二. 下载完成后解压即可使用:...

2020-01-09 20:13:43 110

转载 recyclerView 列表类控件卡顿优化

1、使用ConstraintLayout减少布局层级。2、可以的话,设置RecyclerView布局等高,然后设置recyclerView.setHasFixedSize(true)这样可以避免每次绘制Item时,不再重新计算Item高度。3、根据需求修改RecyclerView默认的绘制缓存选项 recyclerView.setItemViewCacheSize(20); recycle...

2019-11-30 12:40:45 144

转载 使用git fetch和git rebase处理多人开发同一分支的问题

https://blog.csdn.net/azureternite/article/details/76154807纠正文章中部分内容如下:步骤如下:git fetch git rebase 解决冲突 git add 冲突文件 git rebase –continue git push其中,3、4、5点,如果没遇到冲突就不用进行,直接push上去。改为:知道...

2019-11-30 11:47:56 153

转载 把 LiveData 用于事件传递那些坑

1、为什么要把 LiveData 当作事件传递用利用观察者模式打造的事件总线的优点不必多说(当然也有很多缺点),如 EventBus 和 RxBus 用的好的话能起到很好的解耦作用,使整个程序架构更加清晰,不至于到处传递各种 Callback。但是他们都缺少了对 View 层(Activity、Fragment 等)的生命周期的感知能力,需要在生命周期结束时手动解除观察者,手动管理生命周期十...

2019-11-30 11:39:59 418

原创 libqrencode生成二维码并保存成bmp图片打开失败问题解决方案

c++ 使用qrencode库生成二维码的方法如下:#include "qrencode.h"#define QT_OUT_FILE "/root/Application/QRBMP/qrpay.bmp"// Prescaler (number of pixels in bmp file for each QRCode pixel, on each dimension)#defin...

2019-11-15 14:30:41 138

原创 > Could not find com.android.tools.build:gradle:3.2.0. Searched in the follo

导入demo代码 报错:ERROR: Could not find com.android.tools.build:gradle:3.2.0.Searched in the following locations: - file:/C:/Users/user/.m2/repository/com/android/tools/build/gradle/3.2.0/gradle-3.2.0.p...

2019-11-12 19:46:59 1307

原创 android focused、pressed、selected同时使用时的问题

问题描述:在selector只使用pressed属性时,view.isSelected= true,可是view的状态变为选中(及selector中pressed状态激活),但是对于TV项目使用遥控器控制,在控制时主要是移动焦点(focus)来更换选中状态,所以要求selector中也必须增加state_focused的状态和state_selected的状态,但是问题来了,增加这两个状态后v...

2019-08-23 15:06:46 316

原创 vr全景图加载并播放

原图:vr加载后自动播放效果:

2019-08-21 11:40:19 1729

原创 D:\Test\build\outputs\apk\myApp.apk does not exist on disk

修改一下build.gradle文件后同步一下即可。

2019-08-21 10:38:25 156

原创 AsyncTask的缺陷以及解决方法

1、AsyncTask常用于进行耗时操作,完成后更新主线程的UI。2、缺陷:AsyncTask中维护着一个长度为128的线程池,同时可以执行5个工作线程,还有一个缓冲队列,当线程池中已有128个线程,缓冲队列已满时,如果此时向线程提交任务,将会抛出RejectedExecutionException。3、解决方法:由一个控制线程来处理AsyncTask的调用判断线程池是否满了,如果满了则线...

2019-08-20 21:13:03 109

原创 java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again

文章目录java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again异常分析及解决问题描述:问题分析:代码定位思路:行动:java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again异常分析及解决问题描述:我的项...

2019-08-20 19:07:24 3955 1

原创 Merge.exe破解教程

1、解压压缩包,双击“setup.msi”开始安装软件。2、选中“I Agree”。3、等待软件安装完成,大概急需要五分钟。4、在解压包中找到“crack”文件夹,运行文件夹中的注册表“merge.reg”。5、将“crack”文件夹中的“merge.exe”文件复制到软件的安装目录下,默认安装目录:“C:\Program Files (x86)\Araxis\Araxis Merge v6.5”...

2019-07-03 16:37:21 344

原创 Android 阿里mqtt集成及踩坑记录

集成方法参考这篇https://blog.csdn.net/freak_csh/article/details/84134423按文章中下载demo到本地,有org.eclipse.paho.client.mqttv3找不到的问题,而且这个包通过依赖的方式已经引入成功,可是在java类中仍然会报找不到的错误,最后通过注释掉远程依赖,使用jar包的方式解决。jar包下载:https://blo...

2019-06-03 16:18:50 736

原创 Android 配置kotlin单元测试

最近开始学习Kotlin,将之前的一个验证证书的题目里全部改成用Kotlin来写,其中有使用到单元测试,故在这里对Kotlin进行单元测试的配置进行记录。首先build.gradle里添加单元测试依赖:apply plugin: 'kotlin-android'android { sourceSets { //这里主要是添加存放kotlin的测试文件夹,不然我们在test里...

2019-05-16 18:22:53 409

原创 PendingIntent AlarmManager定时重复任务问题总结

需求是需要每天定时休眠和唤醒,方案是使用AlarmManager和PendingIntent,实现如下: /** * time 每天几点触发 */ fun sendAlarmEveryday(time: Int, action: String,requestCode:Int) { val alarmManager = context.getSystem...

2019-05-16 16:25:51 360

原创 kotlin踩坑记录

作为一个Android程序员,最近一直在从java转kotlin,现在已经完全使用kotlin进行开发,中间遇到一些kotlin刚使用容易犯错的地方,在这里记录一下,也是给新加入kotlin大家庭的伙伴一个小分享。1.条件语句中有非空判断时一般会指定一个else值2.反射中class的问题

2019-05-16 15:58:16 453

原创 1.Unsupported method: NativeArtifact.getSourceFolders().

报错信息:Unsupported method: NativeArtifact.getSourceFolders().The version of Gradle you connect to does not support that method.To resolve the problem you can change/upgrade the target version of Grad...

2019-05-08 17:46:19 1788

原创 Error:CMake '3.10.2' was not found in PATH or by cmake.dir property.

报错原因是没有安装cmake工具,在如下位置安装即可:

2019-05-08 16:57:04 6934

原创 Android resource linking failed

Information:Gradle tasks [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:createMockableJar, :vrlib:generateDebugSources, :vrlib:generateDebugAndroidTestSources, :vrlib:createMoc...

2019-05-07 20:27:03 1084 2

原创 MAT常见泄漏Problem Suspect解析

1.169 instances of “android.graphics.Bitmap”, loaded by “” occupy 15,296,280 (43.88%) bytes.这个问题是因为使用Glide加载图片时Glide.with(MainActivity.this),这里应该使用ApplicationContext代替Activity的上下文,因为加载网络图片是异步的。...

2019-05-07 10:49:24 1544

原创 Glide4.0使用及踩坑(https、超时设置)

Glide库依赖:implementation 'com.github.bumptech.glide:glide:4.0.0'一些基本的使用方法和老版本差别不大,这里主要记录一些花了一定时间才解决的进阶功能。1.https资源加载失败,报错信息:javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidato...

2019-05-06 20:39:03 3191

原创 The layout in layout has no declaration in the base layout folder; this can lead to crashes when the

报错信息:The layout in layout has no declaration in the base layout folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier位置:xml的根布局我的项目是tv项目...

2019-05-05 16:51:38 13284

原创 manifest引用build中的变量

app module下的build文件中定义在manifestPlaceholders数组中的元素可以在manifest中引用,定义方式如下:productFlavors{ dev{ manifestPlaceholders = [ BUGLY_ENABLE_DEBUG:true, ...

2019-05-05 16:08:34 652

原创 BuildConfig配置

BuildConfig的配置一般如下:public final class BuildConfig { public static final boolean DEBUG = false; public static final String APPLICATION_ID = "com.qiaofang.qfangadtv"; public static final String B...

2019-05-05 15:58:32 803

原创 Android 有线和无线网监听

全类型(gprs、以太网、wifi)网络连接状态监听:网络状态监听public class NetWorkChangReceiver extends BroadcastReceiver { private NetWorkChangeListener netWorkChangeListener; public NetWorkChangReceiver(NetWorkChang...

2019-04-30 14:56:06 972

原创 android获取设备唯一标识

这里列举了获取所有可以获取到的设备唯一识别码:getDeviceId()。我的设备是TV,获取不到IMEI,但是有以太网口,所以最好的办法是获取以太网mac作为唯一标识。public class MobileInfoUtil { private static String wifiTag = "wlan0";//无线标志,关闭wifi开关后获取不到 private stati...

2019-04-30 14:49:06 1595

原创 LeakCanary简单使用及踩坑记录

log位置 /sdcard/Download/leakcanary-{your package}/{timestamp}.hprofLeakCanary 求解出现 leak analysis failed 怎么办 问题版本1.3.1,更改为1.6.3此问题消失

2019-04-28 21:36:49 1217

原创 Android 系统签名打包方法

方式一 命令行生成(推荐):此方式不需要配置,步骤也不多。在应用程序manifest.xml文件根节点中加入属性:Android:sharedUserId=“android.uid.system”;在android系统目录build/target/product/security/拷贝系统签名文件:platform.x509.pem、platform.pk8;在out/host...

2019-04-22 14:38:33 1423

原创 android系统应用静默安装及静默自启动

现在很多app为了更好的用户体验纷纷开始使用静默安装,这段时间公司也刚好有一个这样的新项目,是电视盒子的tv项目,系统是定制的,可以使用系统签名,所以我们这里的内容只是有系统签名权限的app的静默安装和安装后自己启动自己。下面是测试通过的方案实现代码:工具类:public class ApkController { /** * 描述: 安装 */ publi...

2019-04-22 14:19:46 1334

原创 Glide监听listener simpleTarget踩坑

使用listener回调不到,simpleTarget可以,版本是glide4.0Glide.with(getContext()).load(url).// listener(new RequestListener<Drawable>() {// @Override// publi...

2019-04-22 12:54:22 1746

原创 gson引发的一场血案

Gson是谷歌官方推出的json解析工具,Android开发中一般都是使用它,一些主流框架也支持Gson解析,比如我们比较青睐的网络请求框架Okhttp.然而很久没有遇到Gson解析失败的问题了,突然遇到后台返回数据okhttp内部的gson解析失败的问题也是眉头苍蝇,手头又忙,也是折腾了不少时间,在这里记录一下,希望对遇到同样问题的开发者同行有所启发。新项目中有一个功能接口数据嵌套较复杂,后台...

2019-04-16 23:06:59 459

原创 gridview屏幕右侧留有空白缝隙问题解决

问题:item的宽度设为match_parent,horizontalSpacing设为想要的固定值,例如2px,结果显示屏幕右侧有空白缝隙。原因:多列item平分屏幕宽度减去horizontalSpacing的剩余,每个item的宽度不一定为整数,但是px为item最小单位,系统为了item可以完整显示为舍去小数,最后造成有n个px的空白。解决方案:gridview的最大宽度设为超出屏幕一定...

2019-04-14 15:42:33 344

提示
确定要删除当前文章?
取消 删除