自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(148)
  • 资源 (17)
  • 收藏
  • 关注

原创 Android插件化方案 - RePlugin超全使用手册

Android插件化方案 - RePlugin超全使用手册

2023-11-29 19:50:53 461

原创 不透明度对照表

不透明度对照表

2022-09-07 09:54:59 312 1

原创 Gitee使用教程

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/123128916了解更多Git内容:Git使用详解一、Gitee简介官网地址:https://gitee.com/关于GiteeGitee 是开源中国社区2013年推出的基于 Git 的代码托管服务,目前已经成为国内最大的代码托管平台,致力于为国内开发者提供优质稳定的托管服务。主要功能Gitee 除了提供最基础的 Git 代码托管之外,还提供代码在线查看、历史版本查看、Fork、P

2022-02-25 11:32:29 6196

原创 Android内存管理

转载请注明出处:前言在Android或Java中,我们一般不用担心内存管理,这是因为Java虚拟机(JVM:Java Virtual Machine)存在垃圾回收机制(GC:Garbage Collection),垃圾回收器会对内存进行管理。相比于其它语言(例如C语言),会要求主动释放申请的内存,所以在编程的时候需要考虑内存申请和内存释放的时机。Java GC的存在从一定程度上减少了我们的工作量,但带来的后果就是很多时候我们会滥用内存,比如说申请了一块较大的内存,很少会去关注这块内存何时释放以及如何释放

2022-02-24 17:35:55 3637

原创 Android中的Socket与Http

一、Socket简介1.Socket定义Socket即套接字,是一个对TCP/IP协议进行封装的编程调用接口(API)。Socket不是一种协议,而是一个编程调用接口(API),属于传输层(主要解决数据如何在网络中传输)。Socket总是成对出现的(Socket ={(IP地址1:PORT端口号),(IP地址2:PORT端口号)})2.Socket类型流套接字(SOCK_STREAM):基于TCP协议,工作在传输层,需要先建立连接,采用流的方式提供可靠的字节流服务,能够保证数据

2022-02-24 17:31:15 3380

原创 Android - 解决编译突然变得特别慢的问题

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/107228669一、问题描述。在公司做项目的时候,有一次编译器突然变得特别慢,之前还都算正常。原以为是和新增的依赖库或者代码有关,找了半天原因也没找到。后来想到可能是网络的原因,因为公司的网络做了一些限制,可能会导致编译非常慢,之后回家使用正常的网络试了一下,完全没问题。果然是因为公司网络被限制了从而导致了编译特别慢的问题。二、解决方案。解决这个问题的话,将AndroidStudio的G

2020-12-18 10:01:28 1144

原创 Git - 配置并使用多个SSH KEY

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/82346539引言Git的传输协议一共分为四种:本地、ssh、git和http。我们先来简单介绍一下这四种协议。1.本地协议本地协议:顾名思义,远程仓库在该协议中的表示,就是硬盘上的另一个目录 优点:简单 缺点:所有迭代仓库存储本地一台电脑的情况,增加灾难性数据损失的可能性。$ git clone file:///opt/git/project.git2.ssh协议ssh协

2020-07-20 14:54:28 1450

原创 Android - 更安全地保存静态密钥

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/107184467引言在日常开发中我们经常需要保存一些私密的信息,例如加解密的密钥等等。这时候我们就要来考虑如何存储密钥了。先来简单介绍几种存储方式:Java硬编码方式SharedPreferences存储文件存储数据库存储以上几种存储方式是很不安全的,例如采用硬编码方式存储,程序包很容易被反编译获取到密钥。SharedPreferences、文件和数据库又有可能因为用户的误删操

2020-07-09 16:23:45 2533

原创 Android - 组件化、模块化开发

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/107184467一、组件化与模块化介绍组件化组件:最初的目的是代码重用,功能相对单一或者独立。在整个系统的代码层次上位于最底层,被其他代码所依赖,所以说组件化是纵向分层。特点:把重复的代码提取出来合并成为一个个组件,组件最重要的就是重用(复用),位于框架最底层,其他功能都依赖于组件,可供不同功能使用,独立性强。组件就像一个个小的单位,多个组件可以组合成组件库,方便调用和复用,组

2020-07-07 16:36:54 5154 1

原创 AndroidStudio运行main方法时报错的解决方案

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/80454856一、前言有的时候我们可能需要在AndroidStudio中建立一个测试类并运行它的main方法,但是很多人会发现在AndroidStudio中运行main方法时经常会报错,导致无法运行,尤其是在新版的AndroidStudio中,这种问题一般适合配置有关系,解决方案请往下看。二、解决方案(一般情况下只需要使用第1种方案)1.修改.idea目录下的gradle.xml文件。

2020-07-07 15:51:56 2612 1

原创 Android - MVC、MVP与MVVM架构

一、MVP1.项目Git地址:https://github.com/mythmayor/MvpArchitecture2.//TODO 先将项目地址分享出来,后续再完善博文。二、MVVM1.项目Git地址:https://github.com/mythmayor/MvvmArchitecture2.//TODO 先将项目地址分享出来,后续再完善博文。...

2020-07-01 12:45:54 2343 1

原创 Android - 运行时权限一个工具类搞定

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/81388482一、运行时权限简述。请点击这里了解更多二、运行时权限工具类。package com.mythmayor.demo.utils;import android.Manifest;import android.app.Activity;import androi...

2019-09-26 16:36:05 449

原创 Android - 判断当前网络环境、隐藏软键盘、动态监测及获取权限、Bitmap与Base64互转、SHA1算法

五、判断当前网络环境/** * 判断当前网络环境是WiFi还是移动数据 * * @param activity 要调用方法的Activity * @return 网络类型,1为WiFi、2为移动数据、3为其它 */public static int checkNetType(Activity activity) { //判断是连接的内网还是外网主要用到Connectivity...

2019-09-19 15:25:21 391

原创 Android - 比较版本号大小、安装apk、获取设备唯一标识、获取设备mac地址

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/101023434一、比较版本号大小/** * 版本号比较:主版本号和朱版本号比较,次版本号和次版本号比较等等 * * @param version1 * @param version2 * @return 0代表相等,1代表version1大于version2,...

2019-09-19 15:24:31 702

原创 Android - 获取版本号、判断当前是否为debug模式,判断当前应用是否在前台/后台运行

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/72731390一、获取版本号/** * 获取版本号 * * @param context 上下文 * @return 当前应用的版本号,获取失败返回空串 */ public static String getVersion(Context context) { ...

2019-09-19 15:06:37 1573

原创 Android - TextView限制文本长度,英文占1位,中文占2位

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/72731390一、TextView自带属性限制长度我们知道,TextView有一个android:maxLength的属性,这个属性是用来限制可展示的字符数的,并不区分中英文,只限制数量。例如设置android:maxLength=“4”,字符串"mythmayor"将展示为"my...

2019-09-19 14:56:22 4864 1

原创 UDP通信

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/97106109一、网络编程在开始介绍UDP通信之前,我想先简单介绍一下网络编程的概念。1.什么是网络编程网络编程就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。2.网络编程三要素(1)IPIP即互联网协议(Internet Protocol)。每台网络终端...

2019-07-24 15:18:51 1990

原创 数据库管理工具Navicat Premium 12

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/84638454Navicat Premium 是一套多连接数据库开发工具,让你在单一应用程序中同时连接多达七种数据库:MySQL、MariaDB、MongoDB、SQL Server、SQLite、Oracle 和 PostgreSQL,可一次快速方便地访问所有数据库。安装包及破解...

2019-04-26 17:15:38 387

原创 Android - Android API Level与Android版本对照表

API Level最初Android版本ValueValueValue289Unknown2018-07-02(Beta 3)–278.14.102017-12-05无268.04.102017-08-21无257.14.4.12016-10-047.1.1、7.1.2247.04.4.12016-08-22...

2018-11-29 19:27:25 253

原创 Android - AndroidStudio更改缓存目录

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/82352652一、AndroidStudio缓存目录介绍。1.Android Studio默认安装完后会在C:\Users\YourName\目录下缓存一些数据,会占用C盘很大一部分空间。2.Android Studio默认的缓存目录,主要有三个占空间的文件夹,分别是:...

2018-09-27 11:18:06 5312 2

原创 Git在AndroidStudio中的使用

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/82346539想学习更多关于Git知识的同学欢迎阅读我另外两篇博客: Git使用详解 GitHub使用详解AndroidStudio作为安卓开发最强大的工具,支持多种版本库的使用,之前我已详细梳理过SVN在AndroidStudio中的使用,详见: SVN使用详解 SV...

2018-09-03 18:14:40 10348 3

原创 Git使用详解(结合GitLab和GitHub)

一、将本地代码提交到远程仓库。1.创建本地代码库。在项目目录下打开Git Bash,键入”git init”命令,会自动生成一个”.git”目录,这代表你已经创建成功。 2.创建远程仓库。在GitLab上点击”New Project”,之后键入项目名,其它选项默认即可,点击”Create project”按钮即可完成创建。 3.将本地仓库连接推送到远程仓库。在项目目录下打开Git ...

2018-09-03 16:00:29 11555 2

原创 Android - 运行时权限

自从安卓6.0系统开始,Android中引入了运行时权限,需要在代码中动态申请,下面是需要动态申请的所有运行时权限: 这里有两点需要注意: 1.运行时权限在安卓6.0系统及以上版本中只在AndroidManifest.xml配置中是不行的,还需要在代码中动态申请,可参考文章末尾的例子。 2.每个运行时权限都属于一个权限组,我们在申请某一权限并通过用户的授权后,该权限所在的权限组中其它的权限也...

2018-08-03 15:32:24 265

原创 JWT在Java和Android中的使用

一、JWT简介JWT即JSON Web Token。JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且独立的方式,可以在各方之间作为JSON对象安全地传输信息。 此信息可以通过数字签名进行验证和信任。 JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。虽然JWT可以加密以在各方之间提供保密,但我们将专注于签名令牌...

2018-07-26 16:37:52 9171

原创 Android - EditText自动获取焦点问题的处理

如果一个界面中包含EditText控件的话,当我们跳转到该界面时,会自动弹出输入法。但很多情况下我们不想弹出输入法。那么我们就要知道为什么跳转到界面时会自动弹出输入法,这是因为EditText自动获取焦点导致的。知道了原因我们也就有了相应的解决方案。要想禁止EditText自动获取焦点,只需在其父控件中加入下面的属性即可。android:focusable="true" android:fo...

2018-06-22 13:24:44 3638 2

翻译 OkHttp官方使用教程

在这篇文章中,我将告诉你OkHttp常见的使用场景,以及如何解决OkHttp常见的问题,你需要了解这些并明白它们是如何在一起工作的。同步Get请求(Synchronous Get)下载一个文件,打印它的响应头,并以字符串形式打印它的响应体。 响应体中的string()方法对于小文档来说非常方便和高效。但是,如果响应体太大(超过1M),请避免使用string(),因为它会将整个文档加载到内...

2018-06-19 16:02:22 5993

原创 Android - AndroidStudio的下载、安装与配置

一、AndroidStudio的下载首先把AS的下载地址分享给大家: AndroidStudio官方下载地址 大家可以根据自己的系统进行下载。另外,分享一下不用翻墙即可浏览的谷歌开发者地址: 谷歌开发者二、AndroidStudio的安装软件的安装也比较简单。一直”next”,最后”install”即可。 但有两个地方你可能还是需要进行选择的。 下图中的”Android ...

2018-06-12 16:01:46 9008

原创 Android - 应用安装、卸载、覆盖安装的广播及不生效原因解析

一、应用安装、卸载、覆盖安装的广播最近想优化一下项目,因为应用是有自动更新的功能的,想在覆盖安装的时候做一些自己的逻辑。于是使用了广播来完成这个需求。 讲到广播接收者,大家都知道,Android中四大组件之一。我们需要新建一个类继承BroadcastReceiver,然后记得去清单文件中配置一下广播接收者。 代码也非常简单,首先看一下自定义的广播接收者:package com.we...

2018-06-11 16:02:50 16582 9

原创 如何将项目提交到GitHub

一、前言GitHub这个平台相信大家都不陌生,并且你可能已经在上面看过很多人的开源项目了。刚进入程序开发行业的时候,很多人和我一样,觉得GitHub上的项目都好高大上,也很佩服能够写出优秀的开源项目的作者,当然,也非常感谢他们的奉献精神。那么应该如何将我们的项目提交到这个“高大上”的平台呢?请继续往下看。二、项目的创建与提交1.在本篇文章中,我不会教给你如何安装Git并配置相关的环...

2018-06-05 11:00:06 14329

原创 Android - 弹幕实现原理(附Demo源码)

一、首先给不愿看博客的同学附上Demo源码的链接:点击此处下载安卓弹幕Demo二、弹幕原理的简单解析1.我们先来做些准备工作。(1)我们可能会需要一个视频(我在这里找了一个mp4格式的视频,并放在了res/raw目录下面,因为音频和视频文件放在其它目录(例如assets资源目录)下会导致无法使用,对这一部分有兴趣的同学可以去查资料了解一下)。 (2)需要将界面设置为横...

2018-05-30 15:11:39 11192 4

转载 Android - 25种开源炫酷动画框架

https://blog.csdn.net/u013101864/article/details/51500136

2018-05-29 10:18:34 1206

原创 Android - 开机自启动功能实现

前言:开机自启动的功能在日常开发中可能比较少见,但是还是有一部分行业需要这样的需求。之前同事研究过一段时间,但结果却不理想。这很大程度上是和安卓手机系统相关的,众所周知,安卓系统被各大厂商改的各不相同。网上我们可以找到很多这样的代码,但是用下来可能都失败了。我在这个功能上也学习了一下,记录一下自己的心得。一、首先需要定义一个开机广播接收者BootBroadcastReceiver:pu...

2018-05-25 17:36:06 7551 2

原创 SVN(Subversion)的主干(trunk)、分支(branches)以及标记版本(tags)详解以及与AndroidStuidio的结合使用

一、前言:很多人吐槽SVN的分支不像git那么好用。的确。但现在用SVN的用户也不在少数。所以我们可能也需要了解并使用SVN的分支管理。我在最初用SVN的时候,由于大部分项目是独立开发,所以也是只有一条主干代码,后来想到可能在管理起来尤其是与其他人合作开发分模块的时候可能更需要做一个分支管理,所以整理了这篇文章。二、简述:做分支管理要先明确三个概念: 1.trunk:可以理解为主...

2018-05-24 18:40:01 6082 4

原创 Android - AndroidStudio报错GC overhead limit exceeded的解决方案

解决方案一:去相关Module中的build.gradle文件中修改配置。具体步骤为:找到build.gradle文件,在文件中的android{}下添加如下代码:dexOptions { javaMaxHeapSize "4096M"}或dexOptions { javaMaxHeapSize "4g"}解决方案二:修改项目目录下的gradle.prope...

2018-05-17 18:54:18 3132

原创 Android - 跳转到应用商店进行应用打分功能实现

一、前言一个比较常见的需求是,我们希望更多的人给我们千辛万苦开发出来的应用进行打分、评价,那么这时候我们可能希望在应用内部实现这样的功能。本篇博客将清晰的告诉你如何实现这一功能。二、实现功能的思路或步骤1.首先我们肯定要知道自己的应用都上线到哪些平台(应用商店)了。然后要根据这些已知平台来进行过滤,过滤出在自己的设备上安装了哪些。 2.将过滤出的这些应用商店展示给用户,如果没有安装任...

2018-05-11 11:35:24 4094

原创 Android笔试题大全(持续更新中)

一、选择题1. 下列代码的执行结果是:( B )public class Test3{   public static void main(String args[]){   System.out.print(100%3);   System.out.print(",");   System.out.println(100%3.0);   ...

2018-05-07 18:19:37 31758 1

原创 Android面试题大全(持续更新中)

1.显式intent和隐式intent的区别是什么Intent定义:Intent是一种在不同组件之间传递的请求消息,是应用程序发出的请求和意图。作为一个完整的消息传递机制,Intent不仅需要发送端,还需要接收端。 显式Intent定义:对于明确指出了目标组件名称的Intent,我们称之为显式Intent。 隐式Intent定义:对于没有明确指出目标组件名称的Intent,则称之为隐式In...

2018-05-07 18:04:12 8631

原创 Android高级面试题大全(持续更新中)

1. ThreadLocal的理解可以保证线程的安全。在多个线程共享相同的数据的时候,会为每个线程创建单独的副本,在单独的副本上进行数据的操作,不会对其它线程的数据产生影响,保证了线程安全。2. HashMap HashSet HashTable的区别?都是集合,底层都是Hash算法实现的。HashMap是Hashtable的替代品,这两个都是双列集合,而HashSet是单...

2018-04-16 14:10:11 28859 2

原创 子控件与父控件联动响应事件

1.先上代码:在子控件中设置android:duplicateParentState="true"2.最近遇到这样一个需求,点击一个父控件进行背景的变换,其子控件也比较多,也需要联动这样的事件,比如其中一个子控件的字体需要变换(设置其textColor为selector样式),另外一个子控件需要改变图片(设置其src为selector样式),如果单纯这样设置的话就只有在点击到特定子控件是才...

2018-04-03 10:20:56 3276

原创 Java面试题大全(持续更新中)

1.看下面的程序是否有问题,如果有问题,请指出并说明理由.* byte b1 = 3;* byte b2 = 4;* byte b3 = b1 + b2; * 从两方面去回答这个题 * b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序运行中JVM是 无法判断里面具体的值 * byte类型的变量在进行运算的时候,会自动类型提升为int类型 *...

2018-03-08 18:02:51 8198

AppInstallListener.zip

该Demo提供了Android apk安装、卸载、覆盖安装时的广播的功能。注意:目前个别机型由于系统限制可能存在收不到广播的情况。

2020-07-07

安卓弹幕Demo

安卓弹幕Demo,实现在Android手机上观看视频并查看弹幕,并支持发送弹幕。

2018-05-30

MyToastUtil

自定义Toast,工具类,支持自定义界面风格,解决多次点击Toast显示漫长的问题。

2018-03-12

GridViewDemo

GridViewDemo,支持自建的适配器,支持图文混排,包含资源文件和属性说明。

2018-03-12

安卓常见加密解密

安卓常见加密解密,包含MD5加密、SHA加密、AES加密、DES加密、RSA加密等

2017-08-21

获取设备基础信息

获取设备基础信息

2017-07-18

获取设备信息

获取设备信息

2017-07-18

字符串加密解密

字符串加密解密

2017-07-18

按钮点击选择器(包含图片和文字)

按钮点击选择器(包含图片和文字)

2017-07-17

NumberPickerDemo

NumberPickerDemo

2017-07-17

安卓闪屏页Demo(进入后台后再次打开不展示闪屏页,杀死后台进程后再次打开进入闪屏页)

功能描述:首次进入程序时展示闪屏页,程序进入后台以后再次打开程序时不展示闪屏页,程序进程被杀死后再次进入程序展示闪屏页。支持记录登录状态、退出登录、双击退出应用等操作。

2017-06-22

弹出Dialog

弹出Dialog

2017-06-08

安卓获取系统时间和网络时间

安卓获取系统时间和网络时间

2017-06-06

安卓Popwindow

安卓Popwindow

2017-06-05

RecyclerViewDemo

RecyclerViewDemo

2017-06-05

安卓下载管理测试

安卓下载管理测试,DownloadManager的使用

2017-06-05

安卓底部弹出列表的Dialog(RecyclerViewDialog),支持上下滑动列表

安卓底部弹出列表的Dialog(RecyclerViewDialog),支持上下滑动列表

2017-06-05

空空如也

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

TA关注的人

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