自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 ANR问题了解新思路

众所周知,ANR问题一般不太容易解决。它是一种比较综合性的问题。往往涉及系统事件分发逻辑,ANR产生机制,BINDER机制,线程同步,CPU和内存使用等各方面。意思就是说,要分析ANR,你需要的知识非常多。也就因此,很多人看着ANR问题感觉无从下手,日志中的很多说法都很抽象。既然如此,我们在了解一些基础知识的基础上,再自己去写一下anr是不是可以??手动写出的“问题代码”如下: @Override protected void onCreate(Bundle savedInstance

2021-04-19 19:54:49 3331

原创 TraceView使用记录

性能优化相关的东西真的不太好理解!慢慢来吧。今天使用TraceView来实际看一些东西。代码如下: @Override protected void onCreate(Bundle savedInstanceState) { Debug.startMethodTracing(); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

2021-04-19 18:57:50 97

原创 AIDL使用跨进程调用全实现

写了不下五次了,这次全记录!AIDL使用起来其实很简单,一个服务端,一个客户端。服务端顾名思义,就是提供服务的。客户端通过绑定service获取连接,获取到binder对象应用之后,可以用来调用服务端实现的一些方法。而AIDL文件相当于两者的协议书,服务端和客户端必须都有,才能支持客户端访问服务端。如下整体思路就是(如果看不懂可以直接跳过看后面的实操过程):新建服务端项目服务端新建AIDL文件然后在AIDL文件中新增一些自定义方法运行项目或者make project,目的是编译生成与.ai

2021-04-16 20:03:51 253

原创 在Ubuntu上使用Virtualbox安装Windows虚拟机,Java环境配置地址遇到的各种大坑

本文主要作为笔记,为我这两天遇到的坑做一下备份。JDK下载地址大坑在网上只要一查,就是给我官方地址,但是官方地址又要注册,下载速度还慢,所以在网上找了好久找到一个百度网盘地址。如下:** 链接**:https://pan.baidu.com/s/1ozCGy53AIeQIHWL6s9oAbw **提取码:04lf **网盘放的是jdk1.8版本中的1.8.0_152的版本Vir...

2020-02-26 16:54:18 790

原创 安装Qt过程

下载地址:点击此处下载打开界面之后:然后看自己需求来安装软件!因为我是linux系统,所以我选择了带有linux的那款:下载完毕之后是如下文件:下一步操作(在控制台打开文件目录,然后按照如下方法执行):进入安装界面:从此处开始就与windows一样了,自己按照操作步骤next就可以了!安装虽简单,但是可能也会走弯路,特此记录!...

2020-02-25 09:50:21 135

原创 Qt断点调试,C++的GUI开发

最近简单学了一下C++,所以想用这个来做一点东西练一下手。思来想去,直接从GUI上手吧,感觉这样更有成就感。倒叙来吧,先看看实现效果:这实现的是:一个窗口里面添加一个ListView,给ListView绑定数据。为了更方便入门,直接贴上程序(此逻辑来自网络,仅作为调试内容用):#include "mainwindow.h"#include <QApplication>...

2020-02-24 18:40:59 999

原创 安卓版本重要变化

其他总结网址1其他总结网址2Android5.0 Lollipop隐式启动service禁止有些时候我们使用Service的时需要采用隐私启动的方式,但是Android 5.0一出来后,其中有个特性就是Service Intent must be explitict,也就是说从Lollipop开始,service服务必须采用显示方式启动。java.lang.IllegalArgumentE...

2020-02-13 11:55:59 170

原创 如何给应用弹出框截图

在网上看到很多教程类型的文档,中间用到很多应用弹出框截图,昨天我在记录项目中遇到的问题的时候,需要给软件的弹出框截图,目的是记录操作步骤,可惜,打开弹出框后,去操作截图软件的时候,弹出框就没了,所以没办法截图。如下图,在AndroidStudio中点击File弹出框后,如果去操作其他截图软件,此弹框立即消失。后来几经查找找到一个好用的截图软件:PicPick到网上都能搜到这个软件,下载...

2020-02-07 17:09:09 1091

原创 AndroidStudio如何导入第三方库

说来很简单是吧,这里仅仅作为一个备份记录。以OkHttp为例。首先打开AndroidStudio,找到左上角File,点击后弹出如下窗口:接下来,会弹出如下窗口:接下来:接下来步骤完成查找okhttp第三方库,然后添加:接下来,点击应用,进入同步状态结束即添加成功!多学习,多练习!...

2020-02-07 16:52:50 583

原创 访问assets和raw目录下的资源的方式

为什么会遇到这个问题?我手头有一个小项目,需要将视频打包到apk中,然后实际操作中发现在播放视频,执行mMediaPlayer.setDataSource()的时候,始终报错具体的报错如下:2020-02-04 19:03:35.718 23406-25729/com.kaijun.ningvideo E/MediaPlayerNative: error (1, -21474836...

2020-02-04 19:16:43 216

原创 Error:Android resource linking failed;error: failed linking references

今天写一个小程序,运行时报错如下:尝试了好多次,才发现,应该是如下compileSdkVersion和buildToolsVersion且过小的问题。全部修改为29,就可以了。

2020-02-03 10:42:41 353

原创 安装两个不同版本的python方式,亲试有效

当前做的一个项目,需要用Python27写的脚本解压log,又需要Python37写的脚本来进行性能测试。也就是说我需要在两个版本之间进行切换使用。所以,遍查网络,找到如下方法:1.下载Python27,Python372.安装两个版本的Python,最好放在同一个目录...

2019-12-16 09:55:16 836

原创 Windows下Python无法正常卸载:There is a problem with this Windows Installer package.

本来安装了Python27,后来因为工作需要更换Python37,但是卸载Python27始终卸载不掉。报错如上。尝试多次,解决方案如下:找到之前的安装包,重新安装Python27,选择Repair,等待repaire完成再次卸载即可成功卸载。亲试有效。...

2019-11-25 10:31:54 2958

原创 有损批量压缩图片

工作中需要压缩图片,每次找UI要不是没空,要不就是不会。所以只能自己想办法了。Tinypng 网站提供在线图片压缩服务,是所有图片压缩工具中最好用的之一,但它有所限制:批量最多处理 20 张,且每张大小不允许超过 5 M。这个网站非常良心,开放了免费的 API ,API 取消了每张大小的限制,只限定每个月处理 500 张图片。可以直接采用此网站提供的api接口实现图片压缩方法下面介绍...

2019-11-04 15:16:22 205

原创 事件分发流程【详细,持续更新】

其他不说,图才会让人虎躯一震!

2019-10-21 09:55:12 553

原创 使用adb install安装之后不生效问题解决

本地debug过程中多次遇到采用adb install安装成功,但是修改不生效的情况,多出现在第一次刷机完毕启动时。具体解决方案是:采用adb push 先将apk推到对应目录,然后重启车机。此后再进行install就能生效了。...

2019-10-18 13:50:38 4991 1

转载 线程池ThreadPoolExcutor的使用

摘自阿里巴巴开发手册:【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样 的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 说明:Executors 返回的线程池对象的弊端如下:FixedThreadPool 和 SingleThreadPool: 允许的请求队列长度为 Integer.MAX_VALUE,可...

2019-08-25 12:48:55 515

转载 java静态代理与动态代理简单分析

java静态代理与动态代理简单分析原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/5860749.html1、动态代理(Dynamic Proxy)代理分为静态代理和动态代理,静态代理是在编译时就将接口、实现类、代理类一股脑儿全部手动完成,但如果我们需要很多的代理,每一个都这么手动的去创建实属浪费时间,而且会有大量的重复代码,此时我们就...

2019-08-24 16:18:47 89

原创 面试答题:Context到底是一种什么东西?

很简单的一个问题,但是回答起来却不是那么简单哈!如果面试的时候问起来的话,你就需要明白以下问题:了解Context的作用Context的初始化流程深入了解不同应用组件之间的Context的区别。刚开始学习android的时候,只是官方对Context的说明如下:/** * Interface to global information about an application e...

2019-08-24 15:47:47 322

原创 重点关注知识点清单

SharedPreference线程和进程安全问题(涉及一个apk中开启两个进程的方式:进程守护)Java中栈、堆、静态存储区(方法区)和寄存器的辨析。HashMap,HashSet,HashTable以及Collection集合相关知识为什么静态方法无法调用非静态成员(方法和变量)java多态,封装Android四大控件以及生命周期启动模式常用算法,二分查找,快速查找Integer...

2019-08-20 01:11:45 89

转载 Android总结篇系列:Android广播机制

1.Android广播机制概述Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。广播作为Android组件间的通信方式,可以使用的场景如下:1.同一app内部的同一组件内的消息通信(单个或多个线程之间);2.同一app内部的不同组件之间的消息通信(单个进程);3.同一app具有多个进程的不同组件之间的消息...

2019-08-20 00:21:16 241

转载 转载:安卓的消息机制以及Looper.loop()不会阻塞的原因

Handler,Message,looper 和 MessageQueue 构成了安卓的消息机制,handler创建后可以通过 sendMessage 将消息加入消息队列,然后 looper不断的将消息从 MessageQueue 中取出来,回调到 Hander 的 handleMessage方法,从而实现线程的通信。从两种情况来说,第一在UI线程创建Handler,此时我们不需要手动开启loo...

2019-08-02 11:02:06 293

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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