<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[gsg8709的专栏]]></title><description><![CDATA[一剑飞鸿技术博客]]></description><link>https://blog.youkuaiyun.com/gsg8709</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; gsg8709]]></copyright><item><title><![CDATA[Android 多Dex分包机制]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/82253950</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/82253950</guid><author>gsg8709</author><pubDate>Fri, 31 Aug 2018 11:33:55 +0800</pubDate><description><![CDATA[问题引入

随着项目工程越来越庞大，代码的方法数不断增长到一定程度，就出现Android 低版本系统应用无法安装的情况。那么这是哪里出错了？Android系统对安装包有哪些限制？ 
  前一阵子，我们发现公司的某一个业务，在Android 2.3及系统安装不了。此时，我们该业务的Android客户端开发已经有50个人。一般外面公司的Android开发也就2~3个，代码的体量也很难增长到像我们这样的...]]></description><category></category></item><item><title><![CDATA[Android Studio 打包时 Signature Version 选择 V1 V2 说明]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/80845380</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/80845380</guid><author>gsg8709</author><pubDate>Thu, 28 Jun 2018 16:34:49 +0800</pubDate><description><![CDATA[

问题描述(v1和v2)

Android 7.0中引入了APK Signature Scheme v2，v1是jar Signature来自JDK 
V1：应该是通过ZIP条目进行验证，这样APK 签署后可进行许多修改 - 可以移动甚至重新压缩文件。 
V2：验证压缩文件的所有字节，而不是单个 ZIP 条目，因此，在签名后无法再更改(包括 zipalign)。正因如此，现在在编译过程中，我们将...]]></description><category></category></item><item><title><![CDATA[hash算法原理详解]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/80028285</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/80028285</guid><author>gsg8709</author><pubDate>Sat, 21 Apr 2018 12:49:44 +0800</pubDate><description><![CDATA[散列表,它是基于快速存取的角度设计的，也是一种典型的“空间换时间”的做法。顾名思义，该数据结构可以理解为一个线性表，但是其中的元素不是紧密排列的，而是可能存在空隙。

散列表（Hash table，也叫哈希表），是根据关键码值(Key value)而直接进行访问的数据结构。也就是说，它通过把关键码值映射到表中一个位置来访问记录，以加快查找的速度。这个映射函数叫做散列函数，存放记录的数组叫做散列表。...]]></description><category></category></item><item><title><![CDATA[Git:代码冲突常见解决方法]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79498161</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79498161</guid><author>gsg8709</author><pubDate>Fri, 09 Mar 2018 15:28:45 +0800</pubDate><description><![CDATA[今天会陆续整理一些日常开发中使用git工具所遇到的问题。方便以后查看。



1.git无法上传jar包问题

在用jar提交项目的时候如果没有使用maven 直接报jar包放在lib目录下然后提交的时候会出现无法提交的情况，可以使用以下的解决方案现在项目的根目录里面找到 
 
打开以后 
 
删除 .jar  或者在前面加个#注释掉保存提交后然后再提交，提交的时候如果还是找不到的话要注意一点： ...]]></description><category></category></item><item><title><![CDATA[Eclipse关联Git的方法]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79496186</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79496186</guid><author>gsg8709</author><pubDate>Fri, 09 Mar 2018 13:24:10 +0800</pubDate><description><![CDATA[想在Eclipse中进行Git的管理，提交更新，Push，文件还原等

解决方案：安装Eclipse插件，Egit即可，Egit是Eclipse git的简称  
操作步骤：  
第一步：打开网页http://www.eclipse.org/egit/download/  
第二步：选择插件的安装方式，方式一，在线安装，http://download.eclipse.org/egit/update...]]></description><category></category></item><item><title><![CDATA[在windows使用git命令方法]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79488454</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79488454</guid><author>gsg8709</author><pubDate>Thu, 08 Mar 2018 19:01:47 +0800</pubDate><description><![CDATA[在windows使用git命令方法如下（以win7为例）： 
1、msysgit 是 Windows 版的 Git可以百度搜索Git下载。 
2、安装完成后，开始菜单里找到“Git”-&amp;gt;“Git Bash”打开Git。 
3、注册用户信息：首先配置你的用户信息的Git命令。 
gitconfig–globaluser.name“YourName”gitconfig–globaluser.na...]]></description><category></category></item><item><title><![CDATA[androidstudio 拆包时设置dex方法个数]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79449934</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79449934</guid><author>gsg8709</author><pubDate>Mon, 05 Mar 2018 19:29:53 +0800</pubDate><description><![CDATA[前言

Android应用程序，最终发布成一个apk，安装到手机上。 apk文件随便用一个解压缩文件打开，可以看到里面有一个classes.dex文件，这就是之前工程中所有的代码，以及所有依赖的jar包全部合并在一起生成的一个dex文件。关于dex文件是什么，可以自己去科普一下。

google当初在设计dex文件的时候，限制了dex文件中最大的函数个数为65536(unsigned short)...]]></description><category></category></item><item><title><![CDATA[git 配置增强版log]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79436256</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79436256</guid><author>gsg8709</author><pubDate>Sun, 04 Mar 2018 13:51:01 +0800</pubDate><description><![CDATA[git 配置增强版log



配置前


  git config –global alias.lg “log –color –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)&amp;lt;%an&amp;gt;%Creset’ –abbrev-commit –”


配置后




...]]></description><category></category></item><item><title><![CDATA[git常用命令]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79436092</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79436092</guid><author>gsg8709</author><pubDate>Sun, 04 Mar 2018 13:28:30 +0800</pubDate><description><![CDATA[一.git常用指令

1.查看帮助：git help 
2.查看指定指令：git help clone（可以查看这个指令的所有操作文档） 
3.搜索关键字：/clone （翻译：F  下一页 ，B 上一页） 
4.退出帮助文档：输入Q 
5.查看日志信息：git log 
6.查看文件状态：git status


  显示隐藏文件 
  defaults write com.apple.find...]]></description><category></category></item><item><title><![CDATA[SVN常用命令详解]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79435741</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79435741</guid><author>gsg8709</author><pubDate>Sun, 04 Mar 2018 12:15:11 +0800</pubDate><description><![CDATA[  命令的使用1、检出svn co http://路径(目录或文件的全路径)　[本地目录全路径] --username 用户名 --password 密码svn co svn://路径(目录或文件的全路径)　[本地目录全路径]  --username用户名 --password 密码svn  checkout http://路径(目录或文件的全路径)　[本地目录全路径] --username　用户...]]></description><category></category></item><item><title><![CDATA[Android彻底组件化]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79292793</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79292793</guid><author>gsg8709</author><pubDate>Thu, 08 Feb 2018 18:52:14 +0800</pubDate><description><![CDATA[得到Android组件化方案已经开源，参见Android组件化方案开源。方案的解读文章是一个小的系列，这是系列的第二篇文章： 
1、Android彻底组件化方案实践 
2、Android彻底组件化demo发布 
3、Android彻底组件化-代码和资源隔离 
4、Android彻底组件化—UI跳转升级改造 
5、Android彻底组件化—如何使用Arouter今年6月份开始，我开始负责对“得到app]]></description><category></category></item><item><title><![CDATA[Android上SQLite的性能优化问题]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79209051</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79209051</guid><author>gsg8709</author><pubDate>Tue, 30 Jan 2018 17:59:22 +0800</pubDate><description><![CDATA[1.利用android提高的的insert，query，update，deleteAPI与execSql，rawQuery函数执行原生的插入，查询，更新，删除语句操作花费时间的对比结果




    在相同的环境（adnroid4.0）和相同的机器下执行相同的动作，记录条数也一样的情况下的对比，多次验证的如下：

    （1）如果批量执行的记录数在1000条，则Android S]]></description><category></category></item><item><title><![CDATA[Java实现的二分查找算法]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79193055</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79193055</guid><author>gsg8709</author><pubDate>Mon, 29 Jan 2018 11:13:25 +0800</pubDate><description><![CDATA[二分查找又称折半查找，它是一种效率较高的查找方法。

折半查找的算法思想是将数列按有序化(递增或递减)排列，查找过程中采用跳跃式方式查找，即先以有序数列的中点位置为比较对象，如果要找的元素值小 于该中点元素，则将待查序列缩小为左半部分，否则为右半部分。通过一次比较，将查找区间缩小一半。 折半查找是一种高效的查找方法。它可以明显减少比较次数，提高查找效率。但是，折半查找的先决条件是查找表中的数据]]></description><category></category></item><item><title><![CDATA[Android中Service和Thread的区别]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79174545</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79174545</guid><author>gsg8709</author><pubDate>Fri, 26 Jan 2018 17:32:56 +0800</pubDate><description><![CDATA[首先我们要弄明白Service和Thread分别是怎么定义的：




Thread 是程序执行的最小单元，它是分配CPU的基本单位。可以用 Thread 来执行一些异步的操作。Service是Android的四大组件之一，被用来执行长时间的后台任务。默认情况下Service是运行在主线程中的。

二者的使用上的区别
1.在Android中，Thread只是一个用来执行后台任务的工]]></description><category></category></item><item><title><![CDATA[音视频知识整理]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79139486</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79139486</guid><author>gsg8709</author><pubDate>Tue, 23 Jan 2018 14:35:09 +0800</pubDate><description><![CDATA[本文介绍一些音频开发的基础常识，非常重要，因为不了解这些常识，很多Android API或者第三方库的参数，你都不知道该怎么配置。1. 音频开发的主要应用有哪些？音频播放器，录音机，语音电话，音视频监控应用，音视频直播应用，音频编辑/处理软件，蓝牙耳机/音箱，等等。2. 音频开发的具体内容有哪些？（1）音频采集/播放 
（2）音频算法处理（去噪、静音检测、回声消除、音效处理、功放/增强、混音/分离，]]></description><category></category></item><item><title><![CDATA[Java数据结构之LinkedList、ArrayList的效率分析]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79096206</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79096206</guid><author>gsg8709</author><pubDate>Thu, 18 Jan 2018 14:49:01 +0800</pubDate><description><![CDATA[前言：

在我们平常开发中难免会用到List集合来存储数据，一般都会选择ArrayList和LinkedList，以前只是大致知道ArrayList查询效率高LinkedList插入删除效率高，今天来实测一下。



先了解一下List

List列表类，顺序存储任何对象（顺序不变），可重复。

List是继承于Collection的接口，不能实例化。实例化可以用:

ArrayList(实现动态]]></description><category></category></item><item><title><![CDATA[RoboSpice：android异步网络库]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79061276</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79061276</guid><author>gsg8709</author><pubDate>Mon, 15 Jan 2018 09:49:46 +0800</pubDate><description><![CDATA[android的开源网络库 RoboSpice， RoboSpice是一个使你建立异步的长时间的运行任务异常轻松的一个网络库，在网络请求，缓存支持，和提供开箱即用的rest请求方面尤为强大，想在30秒内快速学习，请访问this infographics。主要特性:
supports Android starting from SDK version 8 (Froyo / 2.2.x)
支持 SDK版]]></description><category></category></item><item><title><![CDATA[Android设计模式之策略模式]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79044928</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79044928</guid><author>gsg8709</author><pubDate>Fri, 12 Jan 2018 15:47:30 +0800</pubDate><description><![CDATA[看下策略模式的定义：
  策略模式定义了一些列的算法，并将每一个算法封装起来，而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变换。
乍一看，也没看出个所以然来。举个栗子吧。 
假设我们要出去旅游，而去旅游出行的方式有很多，有步行，有坐火车，有坐飞机等等。而如果不使用任何模式，我们的代码可能就是这样子的。public class TravelStrategy {
    enum S]]></description><category></category></item><item><title><![CDATA[android 调用js中的方法]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79035625</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79035625</guid><author>gsg8709</author><pubDate>Thu, 11 Jan 2018 16:23:05 +0800</pubDate><description><![CDATA[Android中可以使用WebView加载网页，同时Android端的java代码可以与网页上的javascript代码之间相互调用。一 Android部分： 布局代码： <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/to]]></description><category></category></item><item><title><![CDATA[Android Activity卡顿原因总结]]></title><link>https://blog.youkuaiyun.com/gsg8709/article/details/79026972</link><guid>https://blog.youkuaiyun.com/gsg8709/article/details/79026972</guid><author>gsg8709</author><pubDate>Wed, 10 Jan 2018 18:27:45 +0800</pubDate><description><![CDATA[内存泄漏导致内存占用较高，导致JVM频繁触发GC。解决办法：尽可能的减少生命周期长的对象引用生命周期短的对象。导致内存泄漏的原因有一下几个:
  
    1.查询数据库后没有关闭游标cursor，各种资源文件没有close。 
    2.构造Adapter时，没有使用convertView重用 
    3.Bitmap对象不再使用时没有调用recycle释放内存 
    4.静态变量引用对象]]></description><category></category></item></channel></rss>