<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[c_cayujie的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/c_cayujie</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; c_cayujie]]></copyright><item><title><![CDATA[android自定义view底部可上拉页面]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/70548332</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/70548332</guid><author>c_cayujie</author><pubDate>Sun, 23 Apr 2017 21:23:40 +0800</pubDate><description><![CDATA[最近有需求，要写一个隐藏在底部，但是支持上下拉的菜单框，于是自己写了一个模型，刚好可以复习一下自定义view、事件分发及属性动画的知识。废话不多说，先上效果图：界面很简单，但是有几个难点（大神请略过）：
触摸区域处理；
子控件手势拦截；
配合属性动画的使用； 
先看一下布局：<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:andr]]></description><category></category></item><item><title><![CDATA[实现注入view，简单案例剖析butterknife原理]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/68953665</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/68953665</guid><author>c_cayujie</author><pubDate>Sun, 02 Apr 2017 19:51:53 +0800</pubDate><description><![CDATA[ButterKnife注入框架我相信大家都用过至少听过吧，它的出现简直是android开发人员的一大福利，彻底解放了无止境的findViewById，而是通过优雅的注解来实现view的赋值，如果你真没听过那我在这里只能贴上一张github的截图，自己好好反思吧~butterKnife地址1w5的star你还有什么不学的理由！！！好的，今天我们不说butterfnife怎么用，而是仿照框架中的实现原理]]></description><category></category></item><item><title><![CDATA[Webview与js交互漏洞及解决方法(有注释代码)]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/62038443</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/62038443</guid><author>c_cayujie</author><pubDate>Tue, 14 Mar 2017 10:48:17 +0800</pubDate><description><![CDATA[前两天去Tencent面试，被面试官问到这个问题，答得不是很好，于是回来总结一下，并提供了解决方法与大家分享。
  在Android中,netive与js交互已经不是什么新鲜事。大多数人都知道WebView存在一个漏洞，大致是因为js可以通过webview的window对象获得Class然后通过遍历所有的方法，找到runtime方法，边，虽然该漏洞已经在Android 4.2上修复了，即使用@Jav]]></description><category></category></item><item><title><![CDATA[android apk瘦身实战]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/59501477</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/59501477</guid><author>c_cayujie</author><pubDate>Thu, 02 Mar 2017 14:15:15 +0800</pubDate><description><![CDATA[瘦身的目的
  从目的导向来看，我们是不会无缘无故去做一件事情的，那我们对应用瘦身的目的是为了什么？答案是：提高下载转化率。什么是下载转化率？举个栗子：你的应用大小是 18MB ，有100个潜在用户想要去下载尝试使用，结果有20个用户嫌弃安装包太大直接扬长而去，有20个用户在等待下载的过程中取消下载，最终只有60个用户真正下载安装，那么应用的下载转化率就是 60/100 = 60% 。 
  简单的]]></description><category></category></item><item><title><![CDATA[AppBarLayout、CollapsingToolBarLayout、ToolBar组合实现狂拽屌炸天头部效果]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/54639417</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/54639417</guid><author>c_cayujie</author><pubDate>Sat, 21 Jan 2017 01:56:26 +0800</pubDate><description><![CDATA[以前app的头部非常呆板，MeterialDesign出现之后，头部栏变的丰富起来，今天介绍几种常用的酷炫效果，实用为主。效果一：往上滑动页面，头部消失；往下滑动，头部出现。xml文件：<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http:]]></description><category></category></item><item><title><![CDATA[可拖拽排序的GridView(高仿今日头条编辑频道效果)]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/54560986</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/54560986</guid><author>c_cayujie</author><pubDate>Sun, 15 Jan 2017 11:55:00 +0800</pubDate><description><![CDATA[最近在一直在用今日头条，发现在我的频道编辑时的拖拽排序体验非常有意思，这种拖拽功能其实在支付宝等app上也频繁使用，于是打算自己研究一下，网上虽然有很多类似于此类功能的博客，但实现的都不是特别完美，效果总有瑕疵，今天我分享一个完美体验版，大家用了就知道！老规矩，先上效果： 
准备工作
  要想实现这个效果，首先你要了解这几个方面的知识,有欠缺的同学赶紧先补一下： 
      * 使用WindowM]]></description><category></category></item><item><title><![CDATA[获取activity的根布局]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/54381008</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/54381008</guid><author>c_cayujie</author><pubDate>Thu, 12 Jan 2017 19:35:02 +0800</pubDate><description><![CDATA[最近有些同学问我为什么activity有setContentView( int id ),为什么没有getContentView()这个方法呢？这个我真没办法回答，但是我能告诉你怎么去拿activity布局文件中的根布局。android其实有一个getRootView()的方法，但是通常拿不到id，这是为什么呢？这是因为拿到的getRootView 是在ContentView外的DecorView。]]></description><category></category></item><item><title><![CDATA[SlidingMenu源码分析及拓展：监听拉出菜单时的滚动事件，将主页变暗]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/54379577</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/54379577</guid><author>c_cayujie</author><pubDate>Thu, 12 Jan 2017 16:55:58 +0800</pubDate><description><![CDATA[这些效果以前都写过，但是之前没有积累的习惯，导致每次开始一个新项目时又要重新去翻阅资料、api，挺浪费时间的，所以打算记录一下，养成好习惯。
  SlidingMenu与DrawerLayout:
  
  SlidingMenu是一个非常火的侧拉菜单开源组件，基本上99％的项目都要用上他，Material Design之后出了一个DrawerLayout抽屉组件，也非常好用，两者对比了一下，Dra]]></description><category></category></item><item><title><![CDATA[Android底部导航栏组件：BottomNavigationBar]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/54342099</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/54342099</guid><author>c_cayujie</author><pubDate>Wed, 11 Jan 2017 11:41:03 +0800</pubDate><description><![CDATA[Google终于推出了自己风格的底部导航栏，对于android开发人员来说是一个福音。废话不多说，先来看一下效果： 
怎么样，是不是还行，其实使用起来也非常简单，下面跟着我来做吧！添加依赖：  compile 'com.ashokvarma.android:bottom-navigation-bar:1.3.1'布局文件：    <com.ashokvarma.bottomnavigation.Bo]]></description><category></category></item><item><title><![CDATA[android高级知识汇总]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/53994440</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/53994440</guid><author>c_cayujie</author><pubDate>Tue, 03 Jan 2017 14:50:27 +0800</pubDate><description><![CDATA[本文来自于清华(潇涧)的Java总结，已得到其本人允许转载Android公共技术：公共技术点之 Android 动画基础公共技术点之 Java 动态代理公共技术点之依赖注入公共技术点之 View 事件传递公共技术点之 View 绘制流程1.Android的Framework和Android apk的打包过程底层的Binder驱动，IPC的核心，SGL 2D绘图，OpenGL 3D绘图2.多线程Asy]]></description><category></category></item><item><title><![CDATA[JAVA数据结构－集合篇]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/53954111</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/53954111</guid><author>c_cayujie</author><pubDate>Sat, 31 Dec 2016 10:26:38 +0800</pubDate><description><![CDATA[从事android工作这么多年，越来越发现java基本知识的重要性，数据结构是编程的核心，所以我打算重新回顾总结一下基础。    相信很多刚入门的android开发同学甚至工作几年的程序员可能一直一来都在用ArrayList和HashMap这两种集合类，只是用时爽快，但是有没有同学去思考过为什么我们一直在用这两种集合类，他们底层是如何实现的，以及其他的集合类又有什么优缺点呢？我们开始揭开java集合]]></description><category></category></item><item><title><![CDATA[androidStudio给工程添加依赖模块]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/53912582</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/53912582</guid><author>c_cayujie</author><pubDate>Wed, 28 Dec 2016 19:38:07 +0800</pubDate><description><![CDATA[前言：以前用ecplise可以直接添加依赖模块，但是到了AS年代，很多同学在使用AS的时候看到一些比较好的第三方包，却不知道如何引入自己工程，或者想让自己的项目独立化却不知如何下手,今天就分享一下在AS上添加依赖模块。
//当然as非常的强大，你当然可以用这样的方式引入github上的开源包：
dependencies {
    compile 'com.github.bumptech.glide]]></description><category></category></item><item><title><![CDATA[android常用的AES加解密]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/53905727</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/53905727</guid><author>c_cayujie</author><pubDate>Wed, 28 Dec 2016 09:38:51 +0800</pubDate><description><![CDATA[/**
     * 加密
     */
    public static String aesEncrypt(String encrypted, String keyWord) throws Exception {
        String encryptStr = null;
        try {
            SecretKeySpec key = new Secret]]></description><category></category></item><item><title><![CDATA[ButterKnife 8.1的配置与使用]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/53610836</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/53610836</guid><author>c_cayujie</author><pubDate>Tue, 13 Dec 2016 16:13:57 +0800</pubDate><description><![CDATA[ButtonKnife现在已经更新到了8以上，在用法和配置上发生了一些变化，在这里总结一下，供大家使用：
  在 app -> build.gradle添加：
apply plugin: 'com.android.application'
 //加这句
apply plugin: 'com.neenbedankt.android-apt'android {}dependencies {
    co]]></description><category></category></item><item><title><![CDATA[Android创建桌面快捷方式]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/53575623</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/53575623</guid><author>c_cayujie</author><pubDate>Sun, 11 Dec 2016 21:20:43 +0800</pubDate><description><![CDATA[以前一直以为手机上的每一个图标都是一个单独的app，最近在做一个桌面创建快捷的功能，觉得挺有意思的，跟大家分享一下。  功能比较简单，直接贴代码：
首先开通权限： <!--创建快捷方式权限-->
 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>然后在点击快捷方式之后想要打开的acti]]></description><category></category></item><item><title><![CDATA[Android获取MAC地址大全]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/53437401</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/53437401</guid><author>c_cayujie</author><pubDate>Fri, 02 Dec 2016 18:08:33 +0800</pubDate><description><![CDATA[今天帮同学们梳理一下mac、wifi的工具类，持续更新～/**
 * Created by caoyujie on 16/12/2.
 * Mac地址工具类
 */
public class MacAddressUtils {    /**
     * 获取当前连接的wifi的mac地址
     */
    public static String getWifiMacAddress(Cont]]></description><category></category></item><item><title><![CDATA[android沉浸式状态栏]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/53041612</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/53041612</guid><author>c_cayujie</author><pubDate>Sat, 05 Nov 2016 00:11:17 +0800</pubDate><description><![CDATA[这篇为小伙伴们介绍时下非常流行的沉浸式布局，虽然有关沉浸式状态的资料网上已经有很多，但是真正自己开发起来却碰到很多坑。好了，废话少说，先上图：    是不是觉得很炫，android顶部默认的黑色状态栏变成了布局的一部分，下面我们来看他们是怎么实现的吧！首先我们要摆正一个正确的认识，要想保证沉浸式状态栏的体验效果，我推荐只兼容4.4以上的机型：
  全屏模式：
     //支持4.4以上]]></description><category></category></item><item><title><![CDATA[adb进行android 调试(mac)]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/52963757</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/52963757</guid><author>c_cayujie</author><pubDate>Sat, 29 Oct 2016 12:04:20 +0800</pubDate><description><![CDATA[adb是androidsdk中自带的一个工具，今天介绍几个对于android开发者来说比较常用的功能：
  －查看设备 
    －安装、卸载apk 
    －打印log 
     -重启设备
一、配置adb环境变量要想能够在mac终端上执行adb命令首先配置adb环境变量，这里我分享一个配置流程，亲测可用：1、找到androidsdk的路径，adb工具在sdk下的platform-tool下，]]></description><category></category></item><item><title><![CDATA[使用Build Variants控制应用的多配置]]></title><link>https://blog.youkuaiyun.com/c_cayujie/article/details/52901903</link><guid>https://blog.youkuaiyun.com/c_cayujie/article/details/52901903</guid><author>c_cayujie</author><pubDate>Sun, 23 Oct 2016 15:19:20 +0800</pubDate><description><![CDATA[使用Build Variants控制应用的多配置在app项目的开发中经常会碰到测试环境、beta环境、正式环境等多环境的平凡切换，eclepse年代我们都是通过注释代码的方法来实现，这样的操作不仅非常麻烦，而且不容易区分环境，现在AS提供了BuildVariants（编译控制器）能够十分方便的解决这一难题，下面我们一起来学习一下吧：了解app目录下的build.gradle
  build.grad]]></description><category></category></item></channel></rss>