自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(108)
  • 资源 (19)
  • 收藏
  • 关注

原创 怎么打印CSDN博客博文 把CSDN博客保存成PDF

打印CSDN博文内容,将以下js复制放入Chrome开发者选项里边的console,回车即可。具体步骤https://blog.csdn.net/sinat_42483341/article/details/893542221、在空白处右键。选择“检查”2、点击上面的console选项,如下图3、将下面的代码粘贴,回车,就会自动跳转到打印界面(function(){ $("#side").remove(); $("#comment_title, #comment_list, #co.

2020-08-12 15:06:34 356

原创 Gradle 升级到 3.0.0 之后 implementation 与 compile 之间的区别

在 Android studio 升级到 3.0 版本之后,dependencies 中  implementation 替代 compile。那么新版的 Gradle 中 implementation 和 compile 有什么区别呢?当项目依赖关系是 app > module 时,在 module 的 build.gradle 下:1.如果使用 implementation 依赖的库,可以防止外部使用。2.如果通过 compile 或 api 依赖的库,是可以在外部使用该 mod

2020-07-13 10:34:55 515

原创 https://blog.csdn.net/yuzhiqiang_1993/article/details/78214812

All com.android.support libraries must use the exact same versi...

2020-07-13 10:23:31 849

转载 依赖库冲突

<article class="article fmt article-content" data-id="1190000015805844" data-license="cc">一、问题的产生1.1 引入的支持库版本和编译版本不一致相信大家在build.gradle中引入各种依赖的时候,或多或少会见过一些红线,gradle会提示你,当前的编译版本和你依赖的这个支持库的版本号不同,应该使用相同的支持库版本,来比避免编译不通过问题,类似于这种...

2020-07-13 09:55:05 5776

原创 test

本文主要解决以下几个问题:我们都知道Android的刷新频率是60帧/秒,这是不是意味着每隔16ms就会调用一次onDraw方法?如果界面不需要重绘,那么16ms到后还会刷新屏幕吗?我们调用invalidate()之后会马上进行屏幕刷新吗?我们说丢帧是因为主线程做了耗时操作,为什么主线程做了耗时操作就会引起丢帧?如果在屏幕快要刷新的时候才去OnDraw()绘制,会丢帧吗?好了,带着...

2020-04-17 09:31:29 179

原创 安卓test111 --58

<div class="blog-content-box"><div class="article-header-box"> <div class="article-header"> <div class="article-title-box"> <h1 class="title...

2020-02-20 10:41:31 979

原创 安卓apk反编译、修改、重新打包、签名全过程

apktool d E:\fanbianyi22\lanyashiyong.apk //反编译得到文件apktool b lanyashiyong -o app-release-new.apk 修改源码后重新打包jarsigner -verbose -keystore wisme.jks(签名文件) -signedjar app-release-signed.apk(输出文件) app-...

2020-01-07 09:58:35 397

原创 ValueAnimator学习指南

属性动画的使用 是 Android 开发中常用的知识今天,我将讲解属性动画使用中最核心的一个方法类:ValueAnimator,希望你们会喜欢目录1. 简介属性动画机制中 最核心的一个类2. 原理通过不断控制 值 的变化,再不断 手动 赋给对象的属性,从而实现动画效果。具体如图下:从上面原理可以看出:ValueAnimator类中有3个重要方法:ValueAnim...

2020-01-02 17:07:17 618

原创 Android ObjectAnimator类:手把手带你自定义属性动画

转自 https://blog.csdn.net/carson_ho/article/details/99712272属性动画的使用 是 Android 开发中常用的知识今天,我将讲解属性动画使用中最核心的一个方法类:ObjectAnimator,希望你们会喜欢。目录储备知识阅读本文前,请先阅读文章:Android:这是一份全面 & 详细的动画入门学习指南1. 简介...

2020-01-02 15:52:31 619

原创 2019年最新面试动脑学院安卓 笔记安卓高级进阶-连接天天模拟器和adb常用命令

adb 重启动脑学院安卓企鹅找我 two2, zero0, eight8, one1 ,two2, eight8, four4, five5, eight8 ,one1adb kill-server在关闭adb服务后,要使用如下的命令启动adb服务。adb start-server当前焦点的界面 adb shell dumpsys activity...

2020-01-01 23:57:46 396

原创 ColorStateList动脑学院安卓开发

tv_show.setTextColor(getResources().getColorStateList(R.color.selector_color_333333_fea345));企鹅找我 two2, zero0, eight8, one1 ,two2, eight8, four4, five5, eight8 ,one1int[] colors = new int...

2019-12-18 18:03:34 120

转载 动脑学院高级安卓高级工程师java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一

<div class="cnblogs_code">对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。https://www.cnblogs.com/coprince/p/8603492.html本文参考java 泛型详解、Java中的泛型方法、 java泛型详解1. 概述泛型在java中有很重要的地位,在面向...

2019-09-30 16:22:58 102

原创 jni 文件夹.so选择

defaultConfig { ndk { //比如添加其余客服的依赖,会自动屏蔽下面三个之外的.so文件,文件夹只有下面三个 abiFilters "armeabi", "armeabi-v7a", "x86" //只留下这三个架构包 } }mips / mips64: 极少用于手机可以忽略 x86 / x86_64: x...

2019-01-10 11:08:38 408

转载 as卡顿

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mengtianwxs/article/details/79345542 Android Studio 2.0 以下: 每次升级/安装 Android Studi...

2018-11-29 10:41:38 352

转载 性能优化一

1、性能维度常见用来衡量App性能的维度如图9-1所示。其中,性能指标包括电池(电量/温度)、流量(上行流量/下行流量等)、CPU(平均/最大/最小)、内存(平均/最大/最小)、帧率(平均/最高/最低/页面切换)和crash率等。2、App优化总结描述—倾听用户意见。了解并听取用户的意见是成功...

2018-09-05 13:15:27 255

转载 浅谈Java数据结构和算法

博客园 首页 新随笔 联系 管理 订阅 随笔- 92&nbsp;文章- 93&nbsp;评论- 5&nbsp; &lt;/div&gt;&lt;!--end: blogStats --&gt; &lt;/d...

2018-08-27 11:36:50 190

转载 浅谈算法和数据结构

    &lt;div class="post"&gt;        &lt;h1 class="postTitle"&gt;            &lt;a id="cb_post_title_url" class="postTitle2" href="https://www.cnblogs.com/huojg-21442/p/7246518.html"&a

2018-08-27 10:33:42 209

原创 as下git

AndroidStudio自动忽略现在的AndroidStudio已经很智能了,当创建项目的时候自动给我们创建了一个.gitignore 并给我们忽略了一些文件*.iml.gradle/local.properties/.idea/workspace.xml/.idea/libraries.DS_Store/build/captures1234567812345678

2017-06-15 15:32:48 281

转载 使用SparseArray和ArrayMap代替HashMap

在Android开发时,我们使用的大部分都是Java的api,比如HashMap这个api,使用率非常高,但是对于Android这种对内存非常敏感的移动平台,很多时候使用一些java的api并不能达到更好的性能,相反反而更消耗内存,所以针对Android这种移动平台,也推出了更符合自己的api,比如SparseArray、ArrayMap用来代替HashMap在有些情况下能带来更好的性能提升。

2017-06-08 16:53:33 357

转载 常用rxjava操作符

RxJava 操作符阅读本文前请先了解 RxJava 的基本使用。参考文档: RxJava JavaDocReactiveX文档中文翻译1 Observable 的创建1.1 from( )转换集合为一个每次发射集合中一个元素的 Observable 对象。可用来遍历集合。方法列表:public static Observable

2017-06-05 17:55:42 607

转载 retrofit

该文章转载自LaterEqualsNever的Say Hello to Retrofit之前对Android里常用的网络请求库OkHttp与Volley做了简单的学习归纳与总结,这里看这个系列中的最后一篇,来认识一下Retrofit。Retrofit可以认为是OkHttp的“升级版”。之所以这么说,是因为其内部默认正是基于OkHttp来进行封装的。这点从Retrofit这个命名就可以看

2017-06-01 17:27:24 338

原创 picasso使用

package com.yixincaipiao.demos;import android.content.Context;import android.graphics.Bitmap;import android.net.Uri;import android.text.TextUtils;import android.widget.ImageView;import com.squ

2017-05-25 17:18:51 491

转载 nitification 使用

private void showNotification() { //获取PendingIntent Intent mainIntent = new Intent(this, TestActivity.class); PendingIntent mainPendingIntent = PendingIntent.getActivity(this, 0, mainInten

2017-05-23 16:27:16 537

原创 多渠道打包相关

通用配置文件apply plugin: 'com.android.application'android { //签名信息,通过setting可以设置生成 signingConfigs { releasesign { keyAlias 'alias' keyPassword '密码'

2017-05-22 14:46:54 240

转载 webview详细使用

Android开发:最全面、最易懂的Webview使用详解作者 Carson_Ho关注2016.08.31 17:02* 字数 1958 阅读 4875评论 14喜欢 152前言现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等,如下图京东首页那么这种该如何实

2017-05-16 14:36:22 437

原创 UI拿来用

1 viewpager 无限轮播 http://download.csdn.net/detail/u013134722/9840527  未完待续...

2017-05-12 11:37:42 304

原创 tab+fragment实现主页

http://download.csdn.net/detail/u013134722/9839335  demo下载地址

2017-05-11 11:27:32 248

原创 as注释风格统一

2017-05-09 12:40:18 1361

原创 Java加密技术相关

1、ECB加密模式是最简单的模式,每一个数据块之间没有任何关系。因此它不需要也不能使用IV(初始化向量:Initialization vector)。默认的加密模式就是ECB(直接使用"AES"获取算法时) 2、其它加密模式需要使用IV,IV的使用方式:IvParameterSpec iv = new IvParameterSpec(keyBytes);encypher.init(

2017-05-08 21:38:09 464

原创 修改recycleview封装

http://download.csdn.net/detail/u013134722/9826517代码下载  ,封装的recycle

2017-04-26 17:56:04 297

转载 请简要描述客户端发送的http request header都包含哪些内容

问题描述:请简要描述客户端发送的http request header都包含哪些内容?解答:HTTP Request header当今web程序的开发技术真是百家争鸣,ASP.NET,PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HT

2017-04-21 11:10:55 1480

转载 jdk配置失败

jdk环境变量设置不成功怎么办听语音浏览:765|更新:2016-05-27 09:571234567分步阅读一键约师傅百度师傅最快的到家服务,最优质的电脑清灰!百度经验:jingyan.baidu.com当我们好不容易安装完jdk,配置好环境变量的后就要进行验证,通

2017-04-20 17:22:01 516

转载 volley出现的获取数据异常

使用了request.start(),所以才导致的问题。public static void RequstGet_JSONObject() { request.cancelAll(tag); jsonObjectRequest.setTag(tag); request.add(jsonObjectRequest); request

2017-04-18 15:44:12 593

原创 volley 兼容新版本sdk

导入这个包时,使用21之后的sdk会出错import android.net.http.AndroidHttpClient;android { compileSdkVersion 25 buildToolsVersion "25.0.2" useLibrary 'org.apache.http.legacy' //加入这个 }

2017-04-18 13:24:01 865

转载 webview坑注意点

前面那张hybrid开发心得 有人问 怎么解决不用onJsPrompt 来回调js函数的问题。其实很简单,就是在在你的jscalljava回调函数内 另外开个线程去load js代码即可:wb.post(new Runnable() { @Override public void run() {

2017-04-11 18:33:01 455

转载 编码规范

前言这份文档参考了 Google Java 编程风格规范和 Google 官方 Android 编码风格规范。该文档仅供参考,只要形成一个统一的风格,见量知其意就可。源文件基础编码格式源文件编码格式为 UTF-8。文件名源文件以其最顶层的类名来命名,大小写敏感,文件扩展名为.java。源文件结构许可证与版权信息如果一个文件包含许可证或版权信息,那么它应当

2017-04-11 18:08:12 424

转载 zipalign对齐

Android SDK中包含一个“zipalign”的工具,它能够对打包的应用程序进行优化。在你的应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效率。因此,这种方式能够让应用程序和整个系统运行得更快。我们强烈推荐在新的和已经发布的程序上使用zipalign工具来得到优化后的版本——即使你的程序是在老版本的Android平台下开发的。这篇文章将描述zipalign

2017-04-11 17:30:45 1029

转载 rxjava+retrofit

Retrofit结合RxJava使用指南Retrofit是一个当前很流行的网络请求库, 官网的介绍是: "Type-safe HTTP client for Android and Java". 本文介绍Retrofit的使用.先介绍单独使用Retrofit进行网络请求, 后面主要介绍和RxJava结合的请求, 有实例代码.Retrofit单独使用Setup首先在manifes

2017-04-09 21:33:46 705

转载 viewpager无限滑动

前言其实仔细想一下原理还是挺简单的。无非是当我们滑动到最后一页,再向后滑动时定位到第一页;当我们滑动到第一页,再向前滑动时定位到最后一页。但是,相信很多朋友都遇到过这个问题:视图的过度效果不自然。小编也是通过百度和谷歌查找了很多解决方案,实验了很多方法,总结了一个相对不错的方法,接下来给各位分享下滑动效果、实现细节以及一些踩过的坑。1.无限滑动效果(左右无限滑动)事先准备好

2017-04-09 13:02:04 489

转载 java泛型作用

Java泛型是javaSE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。         泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型

2017-04-07 09:48:25 283

反编译工具,使用连接文章

smali2java是一个将smali代码反编译成java代码的工具,是基于apktool v1.5.0(baksmali v1.3.4)生成的smali文件,依赖于smali文件中的代码行数(.line关键字)和变量别名(.local关键字)等信息,可以最大程度还原原始的java代码。还原出的java代码将具有原始的变量命名,代码的顺序也与原始的java代码保持一致。

2020-01-07

YZxing-master.zip

仿微信识别二维码扫描相册二维码,识别率高,界面可以调

2019-11-26

oauth 2 安卓使用

在安卓上使用 oauth 2.0 授权码模式和简化模式 ,欢迎使用

2018-02-27

as下新建分支

新建分支,拉取分支代码,doc文档,分支管理额文档,主要介绍android studio 使用git的方法,很简单,直接上图了

2017-09-11

无限滑动轮播图

无限滑动轮播

2017-06-13

androidstudio打包

androidstudio 打包配置sign截图

2017-05-22

shareproforoschina

同步代码到oschina马云

2017-05-12

viewpager无线轮播

无线轮播viewpager

2017-05-12

viewpager+fragment

viewpager和tab实现主页ui显示

2017-05-11

tab+fragment实现主页

使用tabhost和fragment实现主页显示界面

2017-05-11

recycleview封装

封装recycleview

2017-04-26

SwipeRefreshLayout+listview上拉加载

支持上拉加载,下拉刷新

2017-03-06

安卓框架封装

安卓开发框架 rxjava+retrofit

2017-02-23

安卓 permiss

动态申请权限

2017-02-22

百度定位周边位置

百度地图获取周边位置

2017-01-09

微信登录及lib库

微信登录实例代码及lib库

2017-01-04

pulltorefresh_library使用

一个用于下拉刷新的开源框架,使用这个框架之后可以非常简单的实现下拉刷新,里面集成多种控件的刷新功能

2016-12-10

org.apache.tools.zip解决解压乱码问题

package com.cliff.common; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile; import org.apache.tools.zip.ZipOutputStream; /** * * 类名: ZipUtil.java * 描述:压缩/解压缩zip包处理类 * 创建者:XXX * 创建日期:2015年5月7日 - 下午1:35:02 * 版本: V0.1 * 修改者: * 修改日期: */ public class ZipUtil { /** * * 功能描述:压缩文件 * 创建者:XXX * 创建日期: 2015年5月7日 - 下午1:35:18 * 版本: V0.1 * 修改者: * 修改日期: * @param directory 指定压缩文件路径 压缩到同目录 * @throws IOException * void */ public static void zip(String directory) throws FileNotFoundException, IOException { zip("", null, directory); } /** * * 功能描述:压缩文件 * 创建者:XXX * 创建日期: 2015年5月7日 - 下午1:36:03 * 版本: V0.1 * 修改者: * 修改日期: * @param zipFileName 压缩产生的zip包文件名--带路径,如果为null或空则默认按文件名生产压缩文件名 * @param relativePath 相对路径,默认为空 * @param directory 文件或目录的绝对路径 * void */ public static void zip(String zipFileName, String relativePath, String directory) throws FileNotFoundException, IOException { String fileName = zipFileName; if (fileName == null || fileName.trim().equals("")) { File temp = new File(directory); if (temp.isDirectory()) { fileName = directory + ".zip"; } else { if (directory.indexOf(".") > 0) { fileName = directory.substring(0, directory.lastIndexOf("."))+ "zip"; } else { fileName = directory + ".zip"; } } } ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(fileName)); try { zip(zos, relativePath, directory); } catch (IOException ex) { throw ex; } finally { if (null != zos) { zos.close(); } } } /** * * 功能描述:压缩文件 * 创建者:XXX * 创建日期: 2015年5月7日 - 下午1:37:55 * 版本: V0.1 * 修改者: * 修改日期: * @param zos 压缩输出流 * @param relativePath 相对路径 * @param absolutPath 文件或文件夹绝对路径 * @throws IOException * void */ private static void zip(ZipOutputStream zos, String relativePath, String absolutPath) throws IOException { File file = new File(absolutPath); if (file.isDirectory()) { File[] files = file.listFiles(); for (int i = 0; i < files.length; i++) { File tempFile = files[i]; if (tempFile.isDirectory()) { String newRelativePath = relativePath + tempFile.getName() + File.separator; createZipNode(zos, newRelativePath); zip(zos, newRelativePath, tempFile.getPath()); } else { zipFile(zos, tempFile, relativePath); } } } else { zipFile(zos, file, relativePath); } } /** * * 功能描述:压缩文件 * 创建者:XXX * 创建日期: 2015年5月7日 - 下午1:38:46 * 版本: V0.1 * 修改者: * 修改日期: * @param zos 压缩输出流 * @param file 文件对象 * @param relativePath 相对路径 * @throws IOException * void */ private static void zipFile(ZipOutputStream zos, File file, String relativePath) throws IOException { ZipEntry entry = new ZipEntry(relativePath + file.getName()); zos.putNextEntry(entry); InputStream is = null; try { is = new FileInputStream(file); int BUFFERSIZE = 2 <= 0) { zos.write(buffer, 0, length); } zos.flush(); zos.closeEntry(); } catch (IOException ex) { throw ex; } finally { if (null != is) { is.close(); } } } /** * * 功能描述:创建目录 * 创建者:XXX * 创建日期: 2015年5月7日 - 下午1:39:12 * 版本: V0.1 * 修改者: * 修改日期: * @param zos zip输出流 * @param relativePath 相对路径 * @throws IOException * void */ private static void createZipNode(ZipOutputStream zos, String relativePath) throws IOException { ZipEntry zipEntry = new ZipEntry(relativePath); zos.putNextEntry(zipEntry); zos.closeEntry(); } /** * * 功能描述:解压缩文件 * 创建者:XXX * 创建日期: 2015年5月7日 - 下午1:39:32 * 版本: V0.1 * 修改者: * 修改日期: * @param zipFilePath zip文件路径 * @param targetPath 解压缩到的位置,如果为null或空字符串则默认解压缩到跟zip包同目录跟zip包同名的文件夹下 * void */ public static void unzip(String zipFilePath, String targetPath) throws IOException { InputStream is = null; FileOutputStream fileOut = null; File file = null; ZipFile zipFile = null; try { zipFile = new ZipFile(zipFilePath,"GBK"); String directoryPath = ""; if (null == targetPath || "".equals(targetPath)) { directoryPath = zipFilePath.substring(0, zipFilePath.lastIndexOf(".")); } else { directoryPath = targetPath; } for(Enumeration entries = zipFile.getEntries(); entries.hasMoreElements();){ ZipEntry entry = (ZipEntry)entries.nextElement(); file = new File(directoryPath+"/"+entry.getName()); if(entry.isDirectory()){ file.mkdirs(); }else{ //如果指定文件的目录不存在,则创建之. File parent = file.getParentFile(); if(!parent.exists()){ parent.mkdirs(); } is = zipFile.getInputStream(entry); fileOut = new FileOutputStream(file); int readLen = 0; byte[] buffer = new byte[4096]; while ((readLen = is.read(buffer, 0, 4096)) >= 0) { fileOut.write(buffer, 0, readLen); } fileOut.close(); is.close(); } } zipFile.close(); } catch (IOException ex) { throw ex; } finally { if(null != zipFile){ zipFile = null; } if (null != is) { is.close(); } if (null != fileOut) { fileOut.close(); } } } /** * * 功能描述:生产文件 如果文件所在路径不存在则生成路径 * 创建者:XXX * 创建日期: 2015年5月7日 - 下午1:41:04 * 版本: V0.1 * 修改者: * 修改日期: * @param fileName 文件名 带路径 * @param isDirectory 是否为路径 * @return * File */ public static File buildFile(String fileName, boolean isDirectory) { File target = new File(fileName); if (isDirectory){ target.mkdirs(); } else { if (!target.getParentFile().exists()) { target.getParentFile().mkdirs(); target = new File(target.getAbsolutePath()); } } return target; } }

2015-12-02

阿里巴巴图片处理simpleimage-1.2.3.jar

阿里巴巴图片处理simpleimage-1.2.3.jar

2015-12-02

空空如也

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

TA关注的人

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