<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[killerjava的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/killerjava</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; killerjava]]></copyright><item><title><![CDATA[图解 23 种设计模式]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/121837449</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/121837449</guid><author>killerjava</author><pubDate>Thu, 09 Dec 2021 18:15:31 +0800</pubDate><description><![CDATA[一、单一职责原则

就一个类而言，应该仅有一个引起它变化的原因。

如果一个类承担的职责过多，就等于把这些职责耦合在一起，一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱他的设计，当变化发生时，设计会遭受到意想不到的破坏；软件设计真正要做的许多内容就是发现职责并把那些职责相互分离。

二、开放-封闭原则

软件实体应该可以扩展，但不可修改。该原则是面向对象设计的核心所在，遵循这个原则可以带来面向对象技术所声称的可维护、可扩展、可复用、灵活性好。

设计人员必须对于他设计的模块..]]></description><category></category></item><item><title><![CDATA[【Android Drawable系列】- shape xml属性详解]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/121406098</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/121406098</guid><author>killerjava</author><pubDate>Thu, 18 Nov 2021 17:36:13 +0800</pubDate><description><![CDATA[Android Drawable系列

日常开发中，一些简单的背景或者图形都会使用xml的shape标签完成，经常使用在按钮的背景上。

shape的优点还是很多的

文件比切图小
	节约内存
	支持拉伸
shape的属性虽然比较简单，但是也能绘制出一些比较复杂的形状

概览

首先来看看shape标签所支持的标签以及属性，如下图：



Shape

左侧是shape标签的自身属性，右侧是shape标签所支持的标签和标签的属性。

下面是一份xml属性实例和说明


&lt;?xml version="1]]></description><category></category></item><item><title><![CDATA[Android手机导出的已安装的APK到电脑]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/120750421</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/120750421</guid><author>killerjava</author><pubDate>Wed, 13 Oct 2021 19:23:41 +0800</pubDate><description><![CDATA[准备：手机链接电脑并运行需导出的app
1.电脑打开cmd
2.运行:adb shell
3.输入执行：dumpsys window | grep mCurrentFocus （获取手机当前运行APP的包名）
4.输入执行：pm path com.XXX(查询出的包名获取apk文件名)
5.输入执行：exit
6.输入执行：adb pull /data/app/com.XXX==/base.apk d:\down\ （导出apk文件到电脑指定路径）




...]]></description><category></category></item><item><title><![CDATA[Java设计模式 Singleton]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/115495476</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/115495476</guid><author>killerjava</author><pubDate>Sun, 11 Apr 2021 14:23:58 +0800</pubDate><description><![CDATA[一些资源管理器常常设计成单例模式

1.懒汉（线程安全）


//懒汉
public class Singleton {
    private static Singleton singleton;
    private Singleton() {}
    public static synchronized Singleton getSingleton() {
        if (singleton == null) {
            singleton = new Singleton]]></description><category></category></item><item><title><![CDATA[Android Studio 快捷键]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/109907260</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/109907260</guid><author>killerjava</author><pubDate>Sat, 21 Nov 2020 20:30:40 +0800</pubDate><description><![CDATA[Android Studio 为许多常用操作提供了键盘快捷键。表 1 按操作系统显示了默认键盘快捷键。请注意，由于 Android Studio 基于 IntelliJ IDEA，因此您可以在IntelliJ IDEA 按键映射参考文档中找到其他快捷方式。

注意：除了下面表 1 中的默认按键映射外，您还可以从很多预设的按键映射中进行选择，或者创建自定义按键映射。如需详细了解如何自定义键盘快捷键，请参阅下文的配置自定义按键映射。

表 1.Windows/Linux 和 Mac 操作系统的默认键盘快捷键..]]></description><category></category></item><item><title><![CDATA[Android中Gradle常用的配置]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/109890052</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/109890052</guid><author>killerjava</author><pubDate>Sat, 21 Nov 2020 09:37:17 +0800</pubDate><description><![CDATA[1、Gradle是什么?


Gradle是一个自动化构建工具
	兼容Maven等仓库
	基于Groovy的特定领域语言来声明名目设置


2、GradleWraper


Gradle Wrapper是一个脚本文件
	它会在没有安装Gradle的情况下为我们下载Gradle，之后我们就可以使用gradlew命令，像使用gradle一样来使用Gradle了
	GradleWraper简化了gradle的安装部署


3、Gradle文件结构


settings.gradle:整个Project的配置文件.]]></description><category></category></item><item><title><![CDATA[MySQL下载安装步骤]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/109695769</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/109695769</guid><author>killerjava</author><pubDate>Sat, 14 Nov 2020 20:23:23 +0800</pubDate><description><![CDATA[1、下载MySQL（Community版）免安装软件包。

MySQL8.0.22


https://dev.mysql.com/downloads/mysql/





  


 下载压缩包文件

   

2、解压

  解压后得到以下文件夹:



3、新建data文件夹和my.ini文件。



    新建一个data文件夹，用来存放数据库文件

    ...]]></description><category></category></item><item><title><![CDATA[AndroidStudio 修改项目包名package名]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/109550903</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/109550903</guid><author>killerjava</author><pubDate>Sat, 07 Nov 2020 19:12:59 +0800</pubDate><description><![CDATA[修改项目包名，实现不覆盖安装(如果只是想不覆盖安装，更改build.gradle里面的包名就OK了，那这篇博文到这里就可以结束了，如果希望项目层次的包名也更改的话，请往下看)

1.首先新建一个项目，默认结构如下，红色的就是包名



2，更改显示项目结构方式，首先1，点击齿轮的图案。然后把第二步中的勾去掉





3更改项目结构显示后如下：



4，选中要修改的报名，快捷键shift + F6修改包名，选择Rename package



5，填好包名后点击Refactor



6 然后选择图中的]]></description><category></category></item><item><title><![CDATA[gradlew 常用命令行]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/109473613</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/109473613</guid><author>killerjava</author><pubDate>Tue, 03 Nov 2020 17:13:00 +0800</pubDate><description><![CDATA[gradlew build --info --debug --stacktrace 调试模式并打印堆栈信息
gradlew -v  查看Gradle、Groovy、Ant、JVM等的版本,截图如下:
gradlew tasks --all  查看所有任务
gradlew clean  clean项目
gradlew build  构建项目
gradlew dependencies  依赖信息查看
gradlew clean build --refresh-depe...]]></description><category></category></item><item><title><![CDATA[JDK 各版本(1.0~14)特性总结]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/109466781</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/109466781</guid><author>killerjava</author><pubDate>Tue, 03 Nov 2020 12:04:31 +0800</pubDate><description><![CDATA[JDK 14无版本代号， 2020-03-17 发布。特性：(还未来得及研究每个新特性，无法确认是功能的属性)

305: instanceof的模式匹配 (预览)
	343: 打包工具 (Incubator)
	345: G1的NUMA内存分配优化
	349: JFR事件流
	352: 非原子性的字节缓冲区映射
	358: 友好的空指针异常
	359: Records (预览)
	361: Switch表达式 (标准)
	362: 弃用Solaris和SPARC端口
	363: 移除CMS（Concurr]]></description><category></category></item><item><title><![CDATA[android 微信开放平台，如何获取应用签名]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/109112349</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/109112349</guid><author>killerjava</author><pubDate>Fri, 16 Oct 2020 10:56:48 +0800</pubDate><description><![CDATA[需求

在微信开放平台申请app应用的时候，遇到要填写应用签名一栏。

解决方案

首先跟随生成keystore和应用签名，生成.jks签名文件， 然后跟随微信开放平台Android应用签名的本质及如何获取的第三、四步，生成带签名的apk，并用专门的工具查看应用签名。

最后用工具查看到应用签名后，我们发现，其实它就是keystore文件的MD5值。 这样，我们就能够查看应用签名了

注意

如果你在修改签名后，进入微信授权页面失败，且提示"应用签名与微信开放平台上的签名不一致"，有可能是微信缓存的缘故。 ]]></description><category></category></item><item><title><![CDATA[Android Gradle 插件版本说明]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/109110796</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/109110796</guid><author>killerjava</author><pubDate>Fri, 16 Oct 2020 10:03:05 +0800</pubDate><description><![CDATA[Android Studio 构建系统以 Gradle 为基础，并且 Android Gradle 插件添加了几项专用于构建 Android 应用的功能。虽然 Android 插件通常会与 Android Studio 的更新步调保持一致，但插件（以及 Gradle 系统的其余部分）可独立于 Android Studio 运行并单独更新。

本页将介绍如何让 Gradle 工具保持最新状态，以及最近的更新都包含哪些内容。

如需详细了解如何使用 Gradle 配置 Android build，请...]]></description><category></category></item><item><title><![CDATA[Java排序算法总结]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/108838147</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/108838147</guid><author>killerjava</author><pubDate>Sun, 27 Sep 2020 22:43:51 +0800</pubDate><description><![CDATA[排序算法
			平均时间复杂度
		冒泡排序
			O(n2)
		选择排序
			O(n2)
		插入排序
			O(n2)
		希尔排序
			O(n1.5)
		快速排序
			O(N*logN)
		归并排序
			O(N*logN)
		堆排序
			O(N*logN)
		基数排序
			O(d(n+r))
		一. 冒泡排序(BubbleSort)


	基本思想：两个数比较大小，较大的数下沉，较小的数冒起来。
	
	
	过程：
	
比较相邻的两个数据，如果第二个数小，就交换位置。
	从后向前]]></description><category></category></item><item><title><![CDATA[color色值]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/101374203</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/101374203</guid><author>killerjava</author><pubDate>Wed, 25 Sep 2019 17:08:58 +0800</pubDate><description><![CDATA[&lt;!--&lt;color name="white"&gt;#FFFFFF&lt;/color&gt; &amp;lt;!&amp;ndash;白色 &amp;ndash;&amp;gt;--&gt;
  &lt;color name="ivory"&gt;#FFFFF0&lt;/color&gt; &lt;!--象牙色 --&gt;
  &lt;color name="l...]]></description><category></category></item><item><title><![CDATA[vim 操作命令大全]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/83379124</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/83379124</guid><author>killerjava</author><pubDate>Thu, 25 Oct 2018 14:31:57 +0800</pubDate><description><![CDATA[1. 关于Vim

vim是Linux下很强大的编辑器。  如果是初学vim，运行一下vimtutor是个聪明的决定。 （如果你的系统环境不是中文，而你想使用中文的vimtutor，就运行vimtutor zh）

1.1 Vim的几种模式

正常模式：可以使用快捷键命令，或按:输入命令行。
	插入模式：可以输入文本，在正常模式下，按i、a、o等都可以进入插入模式。
	可视模式：正常模式下按v可以...]]></description><category></category></item><item><title><![CDATA[Android 8源码目录结构详解]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/83310142</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/83310142</guid><author>killerjava</author><pubDate>Tue, 23 Oct 2018 17:21:35 +0800</pubDate><description><![CDATA[   |-  art // Android Runtime，一种App运行模式，区别于传统的Dalvik虚拟机，旨在提高Android系统的流畅性，包括以下目录           

    |-  benchmark // 程序测试基准。        
    |-  build // 编译文件。      
    |-  cmdline // 命令行工具的初始化与解析。        
...]]></description><category></category></item><item><title><![CDATA[Android 静默安装的几种方式]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/82590894</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/82590894</guid><author>killerjava</author><pubDate>Mon, 10 Sep 2018 15:53:40 +0800</pubDate><description><![CDATA[ Android 要想静默安装app，必须是系统应用或者具有Root权限，否则根本不可能实现静默安装

1.系统API 。不是静默安装

Intent intent = new Intent(Intent.ACTION_VIEW);  
	intent.setDataAndType(Uri.parse(&quot;file://&quot; + apkFilePath), &quot;application/vnd.andro...]]></description><category></category></item><item><title><![CDATA[MATLAB的使用]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/82184754</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/82184754</guid><author>killerjava</author><pubDate>Wed, 29 Aug 2018 16:03:26 +0800</pubDate><description><![CDATA[ 

绪  论

Matlab是“Matrix Laboratory”的缩写，意为“矩阵实验室”，是当今美国很流行的科学计算软件．信息技术、计算机技术发展到今天，科学计算在各个领域得到了广泛的应用．在许多诸如控制论、时间序列分析、系统仿真、图像信号处理等方面产生了大量的矩阵及其相应的计算问题．自己去编写大量的繁复的计算程序，不仅会消耗大量的时间和精力，减缓工作进程，而且往往质量不高．美国Mathw...]]></description><category></category></item><item><title><![CDATA[Eclipse快捷键大全]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/81287768</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/81287768</guid><author>killerjava</author><pubDate>Mon, 30 Jul 2018 16:46:23 +0800</pubDate><description><![CDATA[Eclipse快捷键大全 
Ctrl+1 快速修复(最经典的快捷键,就不用多说了) 
Ctrl+D: 删除当前行 
Ctrl+Alt+↓ 复制当前行到下一行(复制增加) 
Ctrl+Alt+↑ 复制当前行到上一行(复制增加) 

Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) 
Alt+↑ 当前行和上面一行交互位置(同上) 
Alt+← 前一个编辑的页面 
Alt+→ ...]]></description><category></category></item><item><title><![CDATA[Android的apk文件反编译]]></title><link>https://blog.youkuaiyun.com/killerjava/article/details/81241174</link><guid>https://blog.youkuaiyun.com/killerjava/article/details/81241174</guid><author>killerjava</author><pubDate>Fri, 27 Jul 2018 17:23:51 +0800</pubDate><description><![CDATA[    

一、准备必要工具

　　下载好反编译apk时需要的相关工具

1.1、使用工具

apktool （资源文件获取） 
	dex2jar（源码文件获取）
	jd-gui  （源码查看）
1.2、工具介绍

　　apktool  

     　　　　作用：资源文件获取，可以提取出图片文件和布局文件进行使用查看

　　dex2jar

     　　　　作用：将apk反编译成java源码（...]]></description><category></category></item></channel></rss>