自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Chittyo

Stay hungry, stay foolish.

  • 博客(63)
  • 资源 (7)
  • 收藏
  • 关注

原创 Mac下配置adb环境变量

1、打开终端输入touch .bash_profile点回车(温馨tip:点(.)前有空格哦,下同。)open -e .bash_profile点回车,便可打开 .bash_profile 文档;2、添加路径 .bash_profile 打开后,我们在这里添加路径。如果打开的文档里有内容,则用英文分号分割。如果是空白文档的话,直接输入如下内容即可:export PATH=${PATH}:????

2016-11-12 16:19:56 1315

原创 DiskLruCache 的使用及源码解析

DiskLruCache 用于实现存储设备缓存,即磁盘缓存,它通过将缓存对象写入文件系统从而实现缓存的效果。DiskLruCache 得到了 Android 官方文档的推荐,但它不属于 Android SDK 的一部分,它的源码及网址文末会贴出来。下面分别从 DiskLruCache 的创建、缓存查找和缓存添加这三个方面来介绍 DiskLruCache 的使用方式。

2020-11-11 15:41:18 2495 5

原创 LruCache 的使用及源码解析

常用的三级缓存主要是指 LruCache、DiskLruCache、网络,其中 LruCache 对应内存缓存、DiskLruCache 对应磁盘缓存。LRU 全称是 Least Recently Used,即最近最少使用策略,意思是当缓存到达限制时候,优先淘汰近期内最少使用的缓存,LruCache 和 DiskLruCache 都是采用 LRU 策略。比如说 Android 中常来缓存 Bitmap,我们先从 LruCache 中取,取不到再从 DiskLruCache 中取,也取不到的话,最后才从数据源

2020-10-27 16:20:21 2158 8

原创 Java 中的 String、StringBuilder、StringBuffer 的区别

一、是什么?String 不可变字符序列String 是字符串常量,其对象一旦创建之后该对象是不可更改的, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成新对象都会开辟新的内存空间,不仅占用大量内存空间,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度一定是相当慢的,对系统性能产生影响。String 这个类很特殊,特殊在于

2020-10-22 12:05:10 2147 7

原创 用 adb 命令直接安装 apk 到手机

1)、用数据线连接 Mac 和手机;2)、打开终端,进入 apk 所在目录下cd /Users/Chitty/workspace/ProjectName/app/build/outputs/apk/ceshi/release/3)、在终端执行adb install ceshi-release-1.0.0.apk...

2018-11-13 14:20:12 2056

原创 master 分支强制回退

前提是 去 GitLab 的 Settings - Repository - Protected Branches -unprojectgit reset --hard 4a5b7f5bgit push -f origin master

2018-11-13 14:18:26 1377

原创 Android Studio下 获取 应用签名以及 MD5、SHA1(签名)、SHA256 值 的命令

keytool -v -list -keystore /Users/Chitty/workspace/BookBlue/tina.jks

2018-11-13 14:14:56 626

转载 app:preDebugAndroidTestBuild

Android Gradle 报错: Error:Execution failed for task ‘:app:preDebugAndroidTestBuild’. Conflict with dependency ‘com.android.support:support-annotations’ in project ‘:app’. Resolved versions for a...

2018-06-20 17:05:26 458

原创 解决 ScrollView.setOnScrollChangeListener() API 23 及以上可用的限制问题

1、自定义一个类继承 ScrollViewpackage com.chitty.views;import android.content.Context;import android.util.AttributeSet;import android.widget.ScrollView;/** * scrollview 滑动控制高度 * Created by Chitty o...

2018-04-20 14:49:11 2576

原创 Android Studio 编译时提示 Error: Please select android sdk.

编译运行项目时报错如下:Error: Please select android sdk.在 app.iml 文件中 检查以下代码是否存在,不存在则添加上,即可正常运行。

2017-12-12 09:56:14 18958 8

原创 升级到 Android Studio 3.0 + Gradle 4.1 遇到的一些坑及解决方案

问题一:Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=commonDebug, filters=[]}} of type com.android.build.gradle.internal.api.A

2017-11-29 16:44:07 19741 1

原创 Android 应用获取通知栏权限

工具类 NotificationsUtils:package com.xxx.ua.utils;import android.annotation.SuppressLint;import android.app.AppOpsManager;import android.content.Context;import android.content.pm.ApplicationInfo;impor

2017-11-24 13:19:55 5877

转载 JavaWeb 学习总结

转自 孤傲苍狼 - 博客园

2017-11-24 11:42:04 701

原创 Retrofit response 回调封装

Retrofit response 回调封装:import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.text.TextUtils;import com.hyphen

2017-11-22 11:39:25 2247

原创 shell 脚本自动发布 APP

shell 脚本自动发布 APP 记录

2017-11-22 10:52:16 1346

原创 Error:No such property: GROUP for class: org.gradle.api.publication.maven.internal.deployer.DefaultG

问题:在 Android Studio 项目中导入从 Github 上下载的 module 后,会报这个错:Error:No such property: GROUP for class: org.gradle.api.publication.maven.internal.deployer.DefaultGroovyMavenDeployer解决方案:在导入的 module 的 build.grad

2017-11-10 14:15:00 645

原创 Error:Plugin with id 'com.github.dcendents.android-maven' not found.

BUG:Error:Plugin with id 'com.github.dcendents.android-maven' not found.解决方案: 在 Project 下的 build.gradle 里添加全局依赖://1.自动化maven打包插件 classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'//2.自动

2017-10-31 13:39:22 340

原创 okhttp3.internal.http2.StreamResetException: stream was reset: INTERNAL_ERROR

BUG:okhttp3.internal.http2.StreamResetException: stream was reset: INTERNAL_ERROR原因是协议错误导致的,在实例化 okhttpclient 的时候用以下方法:okHttpClient = httpBuilder .protocols(Collections.singletonList(Pro

2017-10-31 13:23:45 14273

转载 Android 各大手机品牌手机跳转到权限管理界面

感谢分享概述最近项目中遇到这样个需求场景: 当我们的用户使用App时不小心拒绝了某项必要权限,而导致无法正常使用。这时候希望重新去打开该权限,那么问题来了,Android厂家定制的room五花八门,很多时候却发现找不到权限管理的入口。为了解决这一问题,如果我们应用中直接提供权限管理入口给用户,是不是会很方便的解决用户这一困扰呢?经过一番研究,整理出了大部分国产手机直接打开权限管理界面的方法:华为I

2017-10-31 10:57:35 1690

原创 Android各版本代号、版本号、API/NDK级别、发布时间

Android各版本代号、版本号、API/NDK级别、发布时间

2017-10-31 09:32:00 872

原创 module 的几种依赖方式的区别

module 的几种依赖方式的区别compilecompile 是对所有的 build type 以及 flavor 都会参与编译并且打包到最终的 apk 文件中。ProvidedProvided 是对所有的 build type 以及 flavor 只在编译时使用,类似eclipse 中的 external-libs ,只参与编译,不打包到最终 apk。APK只会打包到 apk 文件中,而不参与编

2017-10-30 18:06:59 1109

原创 com.android.build.api.transform.TransformException

因为项目做了自动化,故 “加固 apk“ 自然也要写入脚本,实现自动化 “构建、加固、重命名、登录 fir.im 、上传 apk“ 等一系列流程:今天在给项目增加 “腾讯乐固“ 的 leguapi.jar 后,构建、打 release 包时,发生 error 如下:错误信息:Error:Execution failed for task ':xxx:transformClassesWithJar

2017-10-30 15:32:59 417

原创 加固和混淆

1 什么是代码混淆代码混淆通常将代码中的各种元素(变量、函数、类名等)改为无意义的名字,使得阅读的人无法通过名称猜测其用途,增大反编译者的理解难度。虽然代码混淆可以提高反编译的门槛,但是对开发者本身也增大了调试除错的难度。开发人员通常需要保留原始未混淆代码用于调试。2 代码混淆就安全了么代码混淆并不能从根本上阻止反编译等。因为代码混淆仅仅提高了阅读难度,但并不能真正阻止反编译。因此,对于高安全要

2017-10-27 13:32:15 3158 1

原创 重写滑动监听的 WebView

package com.chitty.views;import android.content.Context;import android.util.AttributeSet;import android.webkit.WebView;/** * Created by chitty on 2017/8/29. * 重写滑动监听的 WebView */public class NewWe

2017-10-25 14:39:48 415 1

原创 Can't create handler inside thread that has not called Looper.prepare()

问题:Can't create handler inside thread that has not called Looper.prepare()情景:若在一个 Thread 中启动了一个 ProgressDialog 提示正在连接(即防假死),然后在 Handler 中 dismiss() 这个 ProgressDialog,若有错误信息则在线程中调用 Toast 提示,然后当程序运行到 Toa

2017-10-24 14:08:28 512

原创 Mac 版 Android Studio 切 点9图

超 easy 使用 Android Studio 切点9图,仅作为笔记记录下: OK~

2017-10-24 13:58:06 1059

原创 PopupWindow 适配 Android 7.0 、7.1

「问题描述」:正常显示: 显示错位: 「解决方案」:package com.chitty.views;import android.graphics.Rect;import android.os.Build;import android.view.View;import android.widget.PopupWindow;/** * Created by chitty on 2017/

2017-10-20 17:19:50 1462

原创 延迟的几种方式

int delay = 1000;// 假设 1 秒的延迟一、线程 Thread new Thread(new Runnable(){ public void run(){ Thread.sleep(delay); handler.sendMessage();----通知主线程执行任务 } }).sta

2017-10-19 09:35:45 948

原创 android 6.0 以上版本不显示按钮文字

经检查,原因是在 style.xml 中 <item name="colorAccent">@color/white</item>将 颜色改为非白色即可见: <item name="colorAccent">@color/green</item>解决方案 so easy ,排查起来还是不那么 easy .P.S. AppTheme 中的各个变量对应的内容

2017-10-19 09:24:23 409

原创 retrofit 2.0 如何通过 HttpLoggingInterceptor 打印服务器响应的 json ?

使用 Retrofit 网络请求框架,首先要在 app 的 build.gradle 下添加如下依赖:compile 'com.squareup.retrofit2:retrofit:2.3.0'compile 'com.squareup.retrofit2:converter-gson:2.3.0'然后,创建一个 OkHttp3Utils 工具类:import android.content.C

2017-07-23 21:57:33 6456

原创 Android 通过 localstorage 向 HTML5 传参

现在的 APP,Android 与 H5 混合开发已很常见。当 Android 通过 WebView 加载 H5 页面,且需要向其传参时,可以用 loaclstorage 来实现。代码如下: WebView 先要设置如下属性: webView.getSettings().setDomStorageEnabled(true); webView.getSettings().setApp

2017-07-23 21:25:34 2333

原创 WebView 中 H5 页面的软键盘遮挡输入框

如题,WebView 中 H5 页面的软键盘遮挡输入框,于是在 AndroidManifest.xml 中该 Activity 中 添加如下代码:android:windowSoftInputMode="stateAlwaysHidden|adjustResize"但,无效。然后试了 adjustPan | stateHidden | adjustResize 等各种组合均无效。最终,在 setCo

2017-07-23 21:01:35 5152

原创 Could not find any matches for com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+ as no version

Long long ago , 项目中用到了微信分享,我是直接集成了微信的 sdk (没有用友盟的微信分享),之前做这一功能的时候,按照微信的官方文档做的,没有问题,也测试 OK 了,很顺利; 但是,今天运行项目的时候,Android Studio 突然抛出一个 bug,如下:Error:A problem occurred configuring project ':app'.> Could

2017-07-20 13:51:42 3521

原创 TortoiseSVN 客户端与 Android Studio 关联的二三事

一、TortoiseSVN 客户端无法与 Android Studio 关联的解决办法今天重装了一下 TortoiseSVN_1.9.5.27581_x64 客户端,安装好后,打开 Android Studio -> File ->Settings -> Version Control 发现没有 Subversion,如下图 于是,思考并查找解决办法,如下: 在 File->Settings-

2017-01-19 11:42:52 587

原创 Error:Execution failed for task ':app:transformClassesWithDexForDebug'.

一、错误信息如下:Error:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurr

2016-12-17 21:10:06 1199

原创 No service of type Factory available in ProjectScopeServices

今天在导入新项目时,遇到了文题所示的问题,于是通过搜索查得解决方案: 将工程名下的 build.gradle 中 dependencies 的 classpath 'com.github.dcendents:android-maven-plugin:1.2' 改为 classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.

2016-12-10 20:13:11 447

转载 Android-优化不同版本系统WebView版本兼容性问题

感谢原创博主分享~!~项目地址 : https://github.com/hjhrq1991/JsBridge问题描述App开发时或多或少加载web页面,但是使用h5或者一些新特性来写的web页在Android低版本系统上经常出现各种兼容适配问题。前言WebView是Android系统提供能显示网页的系统控件,它是一个特殊的View,同时它也是一个ViewGroup可以有很多其他子View。在And

2016-09-21 10:16:25 12119

原创 应用程序未安装:已安装了存在签名冲突的同名数据包。

问题如题 : 应用程序未安装:已安装了存在签名冲突的同名数据包。【解决方案】:1、检查项目的 包名、签名文件、keystore 的 key 和密码 是否一致;2、如果您是软件的开发人员,遇到该问题大概是因为您使用 Android Studio 将旧版本的软件自动发布到手机或模拟器上,然而使用此种方式安装的软件是使用Android Studio 的测试用签名,你正式将软件进行打包的签名和 Androi

2016-09-13 10:00:03 27070 2

原创 正则表达式

java中常用的匹配正则表达式实例大全 : http://download.csdn.net/detail/chitty1993/9424641 【注:链接中内容 和 本篇 blog 中内容不保证完全一样。】[正则表达式]文本框输入内容控制:整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$"只能输入n位的数字:"^\d{n}$"只能输入至少n位的

2016-08-31 14:53:36 613 1

原创 android.view.ViewRootImpl$CalledFromWrongThreadException

android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. (只有创建了UI对象的主线程才能去修改UI)解决方案一:在 Android 不是线程安全的, Android 有阻止子线程更新 U

2016-08-26 10:22:11 4018

DisLruCache 源码

DiskLruCache 源码,摘录在此,方便查看 https://github.com/JakeWharton/DiskLruCache/blob/master/src/main/java/com/jakewharton/disklrucache/DiskLruCache.java

2020-11-10

LruCache 源码

LruCache 源码,摘抄下来,方便查阅。 https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/util/LruCache.java

2020-11-05

DiskLruCache 的完整源码

DisLruCache 源码,摘录下来,方便查看。 https://android.googlesource.com/platform/libcore/+/android-4.1.1_r1/luni/src/main/java/libcore/io/DiskLruCache.java https://github.com/JakeWharton/DiskLruCache/blob/master/src/main/java/com/jakewharton/disklrucache/DiskLruCache.java

2020-11-05

ButterKnife

压缩包中包含 android-butterknife-zelezny.jar 和 butterknife-plugin.jar;其中 butterknife-plugin.jar是最新版Butterknife插件,支持butterknife 6.0及7.0,比原始插件多了onClick,及一些微小改变。

2016-08-16

JavaSE1.6_API_en

JavaSE1.6_API_en 英文版

2016-02-01

java中常用的匹配正则表达式实例大全

java 中常用的匹配正则表达式实例大全 (Email地址、网址URL、帐号是否合法、国内电话号码、身份证、腾讯QQ号、国内电话号码、ip地址、特定数字 等等)

2016-02-01

W3CSchool教程

W3CSchool.chm 文档,菜鸟教程。有助于学习HTML。

2016-02-01

空空如也

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

TA关注的人

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