自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (12)
  • 收藏
  • 关注

原创 Android一键反编译工具 jadx

Android一键反编译工具 jadx

2022-09-28 12:03:35 4366 1

原创 protobuf 文件生成Dart文件

protobuf 文件生成Dart文件

2022-09-27 10:07:18 695

原创 Android ANR日志抓取、分析

Android ANR日志抓取分析

2022-09-23 16:36:36 543

原创 flutter升级/版本切换

flutter升级/版本切换

2022-09-23 16:19:39 7841

原创 常用ADB命令

常用adb命令

2022-09-23 16:02:40 419

原创 极光推送厂商通道(小米、华为)对接/问题排查

极光推送厂商通道(小米、华为)对接/问题排查

2022-09-23 15:37:33 3941 1

原创 Android内存优化/内存泄漏排查

内存优化/内存泄漏排查

2022-09-20 14:43:28 953 3

原创 android支付宝(Alipay)接入介绍

支付宝的官网地址:https://docs.open.alipay.com/204/105296/1.将alipaySdk-xxxxxxxx.jar包放入商户应用工程的libs目录下,如下图。或者在app module下的build.gradle下手动添加依赖,如下代码所示:dependencies { ...... compile files('libs/alipaySdk-20...

2018-07-03 10:10:43 3262

原创 android通用的订单数量显示,以及个人中心单页GridView效果

自定义的MenuLinearLayoutpackage com.xxxxxx.view;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Color;import android.graphics.drawable.Drawable;import a...

2018-07-03 09:49:17 1185

转载 详解Java中的clone方法 -- 原型模式

Java中对象的创建浅拷贝:只复制一个对象,对象内部存在的指向其他对象数组或者引用则不复制深拷贝:对象,对象内部的引用均复制clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢?1 使用new操作符创建一个对象2 使用clone方...

2018-04-02 16:12:23 159

转载 if else 和 switch的效率

 switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而,switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项从而到达定位分支的目的。具体地说,switch...case会生成一份大小(表项数)为最大case...

2018-03-21 14:16:37 204

转载 Android中this与Activity.this的区别

Toast.makeText(AlarmActivity.this,"闹钟取消", Toast.LENGTH_SHORT); Toast.makeText(this,"闹钟5秒后启动", Toast.LENGTH_SHORT);  用英文在google搜what‘s difference between this and Activity.this,终于有了结果(其实自己后面用了Java里C...

2018-03-21 11:31:55 1498

转载 android Gson

原文:http://stormzhang.com/android/2014/05/22/android-gson/目前的客户端大都有和服务端进行交互,而数据的格式基本就是json了,于是在Android开发中就经常用到json解析,方便的是Google已经为我们提供了一个很棒的json解析库–gson,那么今天就来总结分享下gson的各种用法。gson的官方下载地址:google-gson

2018-01-26 15:24:31 294

原创 android反编译

需要用到的工具:apktool:https://ibotpeaches.github.io/Apktool/jd-jui:http://jd.benow.ca/dex2jar:https://github.com/pxb1988/dex2jar首先来简单的说明下Apk文件本质上其实是一个zip包。我们直接进行解压就能看到其中的目录。目录说

2018-01-26 14:13:04 225

转载 android webview遇到的坑,及优化

很感谢博主的总结,许多问题我实际项目中都遇到过。当时也是各种google找解决方案。问题也是解决,但是过一段时间又忘记了,记录一下博主的总结,地址:webview遇到的坑,及优化

2018-01-23 18:04:15 291

原创 listview里嵌套Edittext点击相同的item输入法遮挡Edittext

listview 中嵌套 Edittext ,清单文件中设置 activity android:windowSoftInputMode="adjustPan" ,加载的数据超出屏幕。例如: 点击 item 5 软键盘弹出,屏幕整体上移,再点击软键盘右上角隐藏软键盘,此时点击 item 6 软键盘弹出,屏幕整体上移再点击软键盘右上角隐藏软键盘,这时候再点击 item 6 软键盘遮挡住 item 6

2018-01-18 15:52:25 312

转载 深入理解JVM之三:垃圾回收算法

原文:http://blog.csdn.net/dd864140130/article/details/500844711. 标记——清除算法(Mark-Sweep)标记——清除算法是第一种使用和比较完善的垃圾回收算法,算法分为两个过程:1、标记所有需要回收的对象2、标记完成后清除被标记的对象。其标记的过程就是判断对象有效性,执行可达性分析的过程。其执行流程图大体如何下所示

2018-01-05 14:16:53 225

原创 android集成华为push 6003错误,以及华为低版本crash问题

前段时间项目需要接入推送功能,最终对比选择了使用极光推送,但是极光结束后台进程是收不到push消息的,需要我们自己去集成第三方平台,比如:小米,华为,魅族极光接入华为:极光根据 EMUI 系统版本间差异,现采取的方案是 EMUI 4.1 及以上版本,使用 HMS 服务,通知 HMS 通道;对于 EMUI 4.1 以下版本还是⾛极光通道。当初接入华为push时候 SHA256指纹证书

2018-01-02 16:43:13 9608 1

原创 Android常用文件文件路径介绍

import android.content.Context;import android.os.Bundle;import android.os.Environment;import android.support.v7.app.AppCompatActivity;import android.util.Log;public class MainActivity extends Ap

2018-01-02 14:57:27 306

原创 Error:Could not determine the class-path for interface com.android.builder.model.AndroidProject

androidStudio导入Eclipse项目报错错误原因:gradle配置错误因为Eclipse所使用的ADT插件已经不再更新,所以从Eclipse导出的项目使用的是旧版本Gradle插件,而新版的Android Studio(v2.3+)已经不再支持1.0.0版本以下的Gradle插件,因此报错。 相应的解决办法就是将配置文件中的Gradle插件版本改成本地已经安装的版本。

2017-12-14 17:25:18 844

原创 android当activity启动模式设置成singleTask如何获取intent

当A  activity启动模式设置成SingleTask时再从别的页面跳转到该A  activity则生命周期为onNewIntentonRestartonStartonResume此时如果在A  activity中获取intent则获取不到,如果要每次获取intent传来的新数据就需要在onNewIntent(Intent intent)方法里调用setIntent(i

2017-12-14 17:20:27 2311 1

原创 android路由框架

1,什么是路由?映射页面跳转关系,包含跳转相关的一切功能简单描述:路由是一个框架,可以控制,转发对页面的跳转。并在转发前做相应的修改。2,android原生已经提供startActivity,为什么还要使用路由框架呢?1)使用startActivity()的缺点是需要打开的那个Activity的类已经存在,否则无法通过编译,但是在协同开发中,这往往是无法得到满足的。2)我们的模

2017-11-16 11:03:41 711

原创 String.compareTo()比较大小

字符串比较大小规则:根据ASCII码顺序从前向后依次比较 String a = "abcde"; String b = "abcdez"; String c = "abcdeyzq"; String d = "1ab"; String e = "czgagaze"; String f="two";

2017-11-14 14:40:59 4114

转载 android插入联系人

public void addContact(String name, String phoneNumber) { // 创建一个空的ContentValues ContentValues values = new ContentValues(); // 向RawContacts.CONTENT_URI空值插入, // 先获取And

2017-11-10 15:15:53 626

原创 android和js相互调用

android和js相互调用

2017-11-09 14:26:31 876

原创 android配置profile实现环境切换

配置app--build.gradledef env = System.getProperty("profile") ?: "test" sourceSets { main { jniLibs.srcDirs = ['libs']// java.srcDirs = ['src/main/ja

2017-11-07 17:11:16 3878

转载 java.lang.NoClassDefFoundError: okhttp3.Dispatcher

今天开发遇到这么个奇葩问题:java.lang.NoClassDefFoundError: okhttp3.Dispatcher咋一看以为是OKHttp出了问题,也以为是包冲突的问题,但都不是.而且这个错误只在红米(准确的说是5.0以下的机子)手机上才会出现,其他手机上不会出现.网上百度了一圈,连这个问题都没有!也就可以从侧面推测出,包应该是没问题的.那应该是怎么回事儿呢!我仔细分

2017-11-07 16:31:23 971

转载 Unable to execute dex: method ID not in [0, 0xffff]: 65536

原因:Dalvik可执行文件.dex中的Java方法数引用超过65536,64k的计算方法是65536除以1024,65K的计算方法是65536除以1000,如果方法数超过64k编译器编译将无法通过.解决原理:分包:但是现在一个大的应用,尤其是集成第三方库的,很容易超过这个数目,所以Android 5.0 之后的版本谷歌试用了名为ART的虚拟机来代替Dalvik虚拟机,ART支持从APK文件

2017-11-07 16:30:16 341

原创 程序包org.apache.http不存在,解决方式

编译提示爆红import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.StatusLine;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpG

2017-10-13 09:54:55 1213

原创 使用apt导入时报警告:Warning:Using incompatible plugins for the annotation processing: android-apt. This may

使用apt来导入butterknife和dagger的时候,会报警告 Warning:Using incompatible plugins for the annotation processing: android-apt. This may result in an unexpected behavior.解决方案:1、apt 'com.jakewharton:butterknife

2017-10-11 11:07:34 1634

原创 android String文件中修改部分字体颜色

修改部分字体颜色各位同学都知道可以使用SpannableStringBuilder,其实我们可以还有别的简单方式配合Html.fromHtml()以前用SpannableStringBuilder1.为指定的区间[1,4)设置指定的颜色        ssb = new SpannableStringBuilder("为指定的区间[1,4)设置指定的颜色");        s

2017-09-12 15:37:32 15790

转载 AlertDialog,Toast对Activity生命周期的影响

转自:http://blog.csdn.net/scorpioneal/article/details/19049475经常可以在网上看到一些文章介绍Activity生命周期, 说只要一个Activity被覆盖,不是完全可见, 那么它就处于onPause状态或者不可见, 则处于onStop状态, 之前自己也是一直这样以为, 知道后来碰到一些情况(toast的弹出, AlertD

2017-09-06 14:44:27 1027 2

转载 github使用发现优秀的开源项目

原文:http://mp.weixin.qq.com/s/a1x4_fT8Omq_0dxnfktZcg关注一些活跃的大牛            GitHub 主页有一个类似微博的时间线功能,所有你关注的人的动作,比如 star、fork 了某个项目都会出现在你的时间线上,这种方式适合我这种比较懒的人,不用主动去找项目,而这种基本是我每天获取信息的一个很重要的方式。不知道

2017-08-30 10:55:38 451

转载 Android内存优化(使用SparseArray和ArrayMap代替HashMap)

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

2017-08-16 14:26:12 236

原创 android 内存泄露分析及调试(LeakCanary使用)

LeakCanary是一个傻瓜化并且可视化的内存泄露分析工具为什么需要LeakCanary?因为它简单,易于发现问题,人人可参与。简单:只需设置一段代码即可,打开应用运行一下就能够发现内存泄露。而MAT分析需要Heap Dump,获取文件,手动分析等多个步骤。易于发现问题:在手机端即可查看问题即引用关系,而MAT则需要你分析,找到Path To GC Roots等关系。

2017-08-14 15:01:57 461

原创 android https加载WebView图片不显示问题

在webview里面加载https url的时候,如果里面需要加载http的资源或者重定向的时候,webview会block页面加载。这是Android 4.4以来google对安全机制的提升。即当一个安全站点企图加载来自一个不安全站点资源时WebView的行为,android.os.Build.VERSION_CODES.KITKAT默认为MIXED_CONTENT_ALWAYS_ALL

2017-08-08 14:44:28 2070

转载 android ViewStub

原文地址:http://blog.csdn.net/hitlion2008/article/details/6737537/在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵

2017-07-28 17:16:03 339

转载 Data Binding学习(二)

Data Binding 布局文件 - (View)Data binding 的布局文件与传统布局文件有一点不同。它以一个 layout 标签作为根节点,里面是 data 标签与 view 标签。view 标签的内容就是不使用 Data Binding 时的普通布局文件内容。以下是一个例子: <LinearLayout

2017-07-25 17:08:46 346

原创 Data Binding学习(一)

1.为什么要使用Data Binding?当我们没使用Data Binding时候布局是这样的 这是一个你经常会看到的 Android UI。 假设你有一堆带 ID 的视频内容。你的设计师来了,说:“好吧,让我们尝试添加新的信息到这个布局,”这样,当你添加任何布局,你需要跟随另外一个 ID。你需要回到你的 Java 代码,修改 UI。private Te

2017-07-25 16:33:51 269

转载 线程池这一篇就够了

说到线程,我想大家都不陌生,因为在开发时候或多或少都会用到线程,而通常创建线程有两种方式:1、继承Thread类 2、实现Runnable接口虽说这两种方式都可以创建出一个线程,不过它们之间还是有一点区别的,主要区别在于在多线程访问同一资源的情况下,用Runnable接口创建的线程可以处理同一资源,而用Thread类创建的线程则各自独立处理,各自拥有自己的资源。

2017-07-25 10:56:12 943

fragment嵌套viewPager中放fragment

fragment嵌套viewPager,viewpager中也是fragment切换。

2017-11-14

AgentWeb+VasSonic实现h5首页加速

AgentWeb 是一个高度封装的 Android WebView配合腾讯VasSonic专注h5首页加速

2017-11-09

android配置profile实现环境切换

配置profile实现测试生产环境分离需要测试环境包时候gradlew assembleRelease-Dprofile=test (可加可不加) 如果需要别的环境gradlew assembleRelease -Dprofile=所对应的环境

2017-11-09

permissionsdispatcher

github开源permissionsdispatcher android6.0权限管理

2017-11-09

Listview顶部悬浮

简单Listview悬浮,加帧动画

2017-02-10

ExpandableListView

ExpandableListView

2016-12-05

startActivityForResult用法详解

startActivityForResult获得通讯录中电话信息

2016-12-02

view冲突演示

android view冲突演示以及解决

2016-12-02

SharedPreferences

SharedPreferences文件存储

2016-12-02

自定义view冲突解决

自定义view冲突演示,解决

2016-12-02

android 短信验证码自动填充

获取到短信验证码,自动填充到界面上

2016-12-02

ButterKnife

ButterKnife1.8的基本使用

2016-09-09

空空如也

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

TA关注的人

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