自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (6)
  • 收藏
  • 关注

转载 认识registerActivityLifecycleCallbacks

今天无意中看到了Application提供了一个方法,可以监控app内所有activity的生命周期,虽然现在没有用到,但是记录起来,不一定以后有什么用呢。在Android4.0以后,registerActivityLifecycleCallbacks是Application的一个接口,注册之后应用里的所有activity的生命周期都会被监控起来,我们可以在此接口方法里实现一些特殊的需求。比如统计用户对每个Activity使用情况,我们可以定义一个BaseActivity,在onStart()和o...

2021-02-28 01:44:29 762

转载 Android开发 LiveData与MutableLiveData详解

前言  LiveData与ViewMode是经常搭配在一起使用的,但是为了不太混乱,我还是拆分开来说明,此篇博客只讲解 LiveData 与MutableLiveData的概念与使用方式(但是会涉及到ViewMode的部分代码).LiveData是干什么的?  由于LiveData和MutableLiveData都是一个概念的东西(只是作用范围不同)所以就不重复解释了,直接理解LiveData就可以明白MutableLiveData  直接理解LiveData的字面意思是前台数据,其实这其.

2021-02-27 23:58:54 481

转载 git 删除远程的tag

分为两步:  1. 删除本地tag    git tag -d tag-name  2. 删除远程tag    git push origin :refs/tags/tag-namehttps://www.cnblogs.com/dakewei/p/11422595.html如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:$ git tag -d v0.9Deleted tag 'v0.9' (was f52c633)然后,从远程删除。删除命令也是pu...

2021-02-27 18:33:02 12042 1

转载 任务调度(三)——Timer的替代品ScheduledExecutorService简介

先前的两篇博文《任务调度(一)——jdk自带的Timer》和《任务调度(二)——jdk自带的Timer 动态修改任务执行计划》中,简单介绍了一下Timer,可以实现几本的功能,但是在多线程方面却略显不足。根据Timer源码,可以看到Timer是单线程的。所以task都是串行执行。假如其中一个task执行需要很长的时间,那其他的task只能干巴巴的等着。怎么办!现在就遇到了这样的问题。总不能因为这个小小的问题就去换别的任务调度框架吧,还是想用最简单的方案去解决一下。所以Sche...

2021-02-25 21:37:17 561

转载 Dialog闪退问题-View=DecorView@XXXX[XX] not attached to window manager

在使用Dialog的时候,经常会出现下面的报错:java.lang.IllegalArgumentException: View=DecorView@xxxx[xx] not attached to window manager出现该错误的原因是在dialog调用dismiss方法时,activity已经销毁了,使得dialog无法获取activity对应的window manager进而抛出异常。该异常一般出现在异步操作,如网络请求后的回调。要解决该异常问题,可以先调用activit.

2021-02-25 17:55:49 1693

转载 proguard 不混淆方法名_Proguard 常用规则

入口为了决定哪些代码要被保留哪些代码要出丢弃和混淆,必须指定入口点。这些入口点通常是 main方法,activity,service等。 在压缩阶段,Proguard从这些入口点开始递归确定哪些类或类成员要被使用,其余的都会被丢弃。 在优化阶段,ProGuard 会进一步优化代码。在其他优化中,可以将不是入口点的类和方法设为 private,static 或 final ,删除未使用的参数,并且可以内联一些方法。 在混淆阶段,ProGuard 会重新命名不属于入口点的类和类成员

2021-02-25 17:15:57 4252

转载 android 代码混淆及问题大集锦

最近在需要对所开发的项目进行了代码混淆,在android studio中开启代码混淆其实还是挺方便的,不过因为代码混淆产生的问题非常多,特别是对于一些涉及到反射的第三方库经常因为名称的变化导致无法使用。  下面介绍android studio中对android项目进行代码混淆的详细步骤:  (1)代码混淆开启  想要开启代码混淆功能,只需要在相应的项目中将 build.gradle 的相应设置开启即可。android{ buildTypes { release {

2021-02-25 17:11:19 450

转载 Android 代码混淆配置总结

一、前言为何需要混淆呢?简单的说,就是将原本正常的项目文件,对其类,方法,字段,重新命名,a,b,c,d,e,f…之类的字母,达到混淆代码的目的,这样反编译出来,结构乱糟糟的,看了也头大。另外说明一下,本文的混淆总结基于AndroidStudio的IDE开发环境。二、官方默认的混淆配置其实在androidStudio中做混淆,基本就是对Proguard-rules.pro文件的操作。混淆的过程也是有规律可循的。先看看官方的proguard-android.txt文件,位于/tools/p..

2021-02-25 17:01:42 581

转载 Android 代码混淆 混淆方案

本篇文章:自己在混淆的时候整理出比较全面的混淆方法,比较实用,自己走过的坑,淌出来的路。请大家不要再走回头路,可能只要我们代码加混淆,一点不对就会导致项目运行崩溃等后果,有许多人发现没有打包运行好好地,打包完成以后而又不不可以了,导致了许多困惑,本片文章来问大家解决困惑,希望对大家有帮助。Android混淆最佳实践1. 混淆配置android{buildTypes { release { buildConfigField "boolean", .

2021-02-25 16:53:13 327

转载 Android中获取资源的id和url方法总结

Android中获取资源的id和url方法总结获取android工程里面的各种资源的id; String型 color型 dimens型 图片类 获取Android系统里面的资源id 获取Android工程资源的Uri路径,一般是图片,res或者asset下的获取android工程里面的各种资源的id;String型<< string name="OK">> 客户端请求成功 << / string>>/.

2021-02-24 14:06:43 194

转载 git rebase 学习

大致记录一下一般 不管是 rebase 还是 merge 都需要先 把 master 本地的和远端同步一下,如果你没有操作篡改 master代码,只需要git checkout master 并做git pull 然后再checkout 你的分支上 Rebase 一般在你的现有分支上操作,比如 muller_dev,不要在master 上操作 git rebase 分支 是为了向 master 提 merge request 做准备 git rebase 分支是为了方便merge request

2021-02-23 15:02:47 289

转载 Android studio git创建与删除标签(Tag)

项目说明PC windows10 代码托管平台码云 git工具Gitgit上的标签一般是用于标记版本,当发布新版本后,便将该版本的代码打上Tag,用以区别及管理使用标签前需要先将代码提交到马云上创建并提交Tag使用Git 命令删除Tag Android Studio上没发现界面化的删除Tag操作定位到项目根路径(该项目.git 文件夹所在处,.git 文件夹默认是隐藏的)右键打开Git Bash输入 git ta...

2021-02-23 15:01:27 355

转载 git tag怎么使用

git tag怎么使用,git是强大的版本控制软件,里面有个tag功能可能比较少人用到,但是tag实际起到很大的作用,相当于标签的形式来做记号,更加丰富了版本的区分,调用起来就会很方便。工具/原料 git 2.22.0 ubuntu 18.04.1 方法/步骤 1 打开终端窗口,首先到工作目录,然后用git init进行初始化。 2git tag可以查看是否有标签。然后我们查看一下状态。3然后我们需要先commit,才能进行下一步。

2021-02-23 14:50:39 397

转载 破解 Kotlin 协程(4) - 异常处理篇

关键词:Kotlin 协程 异常处理异步代码的异常处理通常都比较让人头疼,而协程则再一次展现了它的威力。1. 引子我们在前面一篇文章当中提到了这样一个例子:typealias Callback = (User) -> Unitfun getUser(callback: Callback){...}我们通常会定义这样的回调接口来实现异步数据的请求,我们可以很方便的将它转换成协程的接口:suspend fun getUserCoroutine() = sus

2021-02-18 16:40:00 578

转载 MediaRecorder.AudioSource音频参数说明

MediaRecorder.AudioSource.MIC参数说明其中第一个参数就是选择录音源的,其可选参数如下:MediaRecorder.AudioSource.CAMCORDER设定录音来源于同方向的相机麦克风相同,若相机无内置相机或无法识别,则使用预设的麦克风MediaRecorder.AudioSource.DEFAULT 默认音频源MediaRecorder.AudioSource.MIC设定录音来源为主麦克风。MediaRecorder.AudioSource.VOICE_C.

2021-02-18 11:17:30 1567

原创 用ndk-stack快速定位jni问题

第一步把相关报错日志导入到本地文件Android\sdk\platform-tools>adb logcat > D:\log.txt第二步把上 面的错误日志文件用ndk-stack进行解读准确找到出错的c\c++文件和行数Android\sdk\ndk-bundle\ndk-stack -sym app\build\intermediates\cmake\debug\obj\armeabi-v7a -dump D:\log.txt原文如下所示:...

2021-02-15 21:03:38 207

转载 【Android FFMPEG 开发】Android Studio 中 配置 FFMPEG 库最小兼容版本 ( undefined reference to ‘atof‘ )

文章目录​​​​​​​FFMPEG 最小兼容版本 注意事项FFMPEG 最小兼容版本 注意事项1 . 最小兼容版本 :在 Ubuntu 中编译 FFMPEG 时 , 需要指定头文件 与 NDK 的依赖库 , 这个 NDK 依赖库与头文件的 版本 , 是我们的最小兼容版本 ;2 . 错误分析 :下面的情况就是配置了错误的最小编译版本 , 排查了半天 , 找出了问题 ; 编译时指定了 21 版本的依赖库 , 但是 build.gradle 中指定了 15 版本的...

2021-02-12 00:39:27 336

转载 破解 Kotlin 协程 - 入门篇

假定你对协程(Coroutine)一点儿都不了解。 通过阅读本文看看是否能让你明白协程是怎么一回事。1. 引子我之前写过一些协程的文章,很久以前了。那会儿还是很痛苦的,毕竟 kotlinx.coroutines 这样强大的框架还在襁褓当中,于是乎我写的几篇协程的文章几乎就是在告诉大家如何写这样一个框架——那种感觉简直糟糕透了,因为没有几个人会有这样的需求。这次准备从协程用户(也就是程序员你我他啦)的角度来写一下,希望对大家能有帮助。2. 需求确认在开始讲解协程之前,我们需要先确认几件事儿

2021-02-10 14:59:06 195

转载 Android防止按钮快速重复点击

在用户使用 Android 应用的时候,经常会出现过快且多次点击同一按钮的情况,一方面这是因为应用或手机当前有些卡顿,另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮响应方式(例如点击按钮时按钮放大,常见于游戏),导致用户误认为没有点击到当前按钮,当然,除了相对应的对应用进行优化和设置点击selector以外,我们还可以做一些其它的工作,例如,判断按钮的 onClick 事件在规定事件段内只响应一次(在论坛的搜索功能中,我们常见到每10秒才可以进行一次搜索的设置,这就在一定

2021-02-09 18:00:02 413

转载 android选择图片,通过uri获取路径

/** * 选择相册图片 */public void choosePhoto() { Intent intent = new Intent(); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); intent.setAction(Intent.ACTION_PICK); startActivityForResult(intent, ALBU.

2021-02-09 16:31:50 1548

转载 图片区域解码BitmapRegionDecoder

问一个简单的问题:如何加载一张图片?可能很多朋友会说使用Glide,Picasso等图片加载库来加载图片,或者使用BitmapFactory来加载图片。但是,大家应该知道,无论是使用Glide还是使用BitmapFactory加载图片,加载的图片都是需要做压缩的,不然会导致oom。那么,如果我不允许压缩,要加载一张高清的大图,那么如何实现?这就需要使用图片区域解码BitmapRegionDecoder。一、前言 在大多数情况下,我们加载图片并不需要加载高清大图,这样我们完全可以使用G...

2021-02-09 15:23:43 799 1

转载 使用MediaStore.ACTION_IMAGE_CAPTURE,拍照到指定目录

示例代码如下:Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (intent.resolveActivity(getPackageManager()) != null) { ContentValues contentValues = new ContentValues(2); String filePath = CommonUtils.getOutputMediaFile().getP

2021-02-08 21:47:32 1625 2

转载 使用drawableLeft图片不居中问题

解决方法:为控件设置gravity属性为居中类型如:center、center_vertical<TextView android:id="@+id/tv_listview_empty" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center_horizon...

2021-02-07 15:46:40 1655 1

转载 http传输文件格式 上传和下载

http传输文件格式 上传和下载https://tool.oschina.net/commons/

2021-02-01 19:16:43 430

二维码扫描ZxingDemo

一个二维码扫描例子

2016-04-06

ormlite-4.48

Android中用ormlite实现持sqlite持久化 共含三个jar包 ormlite-android-4.48.jar ormlite-core-4.48.jar ormlite-jdbc-4.48.jar

2014-11-29

jdk-6u45-linux-x64.part2

如标题示,此为linux下64位java 1.6jdk,经验可以安装运行:我的linux为64 位ubuntu: uname -a Linux kevin-virtual-machine 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

2013-07-31

jdk-6u45-linux-x64.part1

如标题示,此为linux下64位java 1.6jdk,经验可以安装运行:我的linux为64 位ubuntu: uname -a Linux kevin-virtual-machine 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

2013-07-31

空空如也

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

TA关注的人

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