自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android类加载

某个类加载器在加载类时,首先将加载任务委托给父类加载器,一次递归,如果父类加载器可以完成类加载任务,就成功返回;只有父类加载器无法完成此加载任务或者没有父类加载器时,才自己去加载。因为classloader加载类是找到第一个就返回了,所以我们可以把dex文件插到dexElement数组前边,c. patch+old合并,并反射赋值给pathList的dexElements。DexClassLoader 子类 额外提供的动态类加载器。把出问题的类打包成dex文件。为什么使用双亲委派机制?

2022-08-22 13:50:49 819 1

原创 Android虚拟机

Android应用运行在Dalvik/ART虚拟机,每个应用程序就是一个进程。每个进程都对应一个单独的Dalvik虚拟机实例。Dalvik虚拟机执行的是dex文件。

2022-08-18 13:54:20 1590

原创 JVM与垃圾回收

从根找可达 根有 静态变量----》线程栈变量-----》常量池----》JNI(指针)—》内部引用(class对象、异常对象Exception。类加载器)—》同步锁----》内部对象----》临时对象(跨代引用)1、对象头(Mark Word存储对象自身的运行时数据(哈希码、GC分代年龄、锁状态标识、线程持有的锁、偏向线程ID、偏向时间戳)、类型指针、若为对象数组,还应有记录数组长度的数据)常见的JVM实现:Hotspot(Oracle公司)、Zing(C4垃圾回收算法)、毕昇(华为公司)...

2022-08-18 13:52:39 256

原创 设计模式——代理,静态代理及动态代理的使用

代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。一般会有三个角色:抽象接口、真实对象、代理对象。真实对象、代理对象都需要继承抽象接口。抽象角色:指代理角色和真实角色对外提供的公共方法,一般为一个接口真实角色:需要实现抽象角色接口,定义了真实角色所要实现的业务逻辑,以便供代理角色调用。也就是真正的业务逻辑再次。代理角色:需要实现抽象角色接口,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。将统一的流程控制都放到代理角色中处理。目的:静态代理在使用时,需要

2022-08-15 11:45:46 204

原创 注解与反射学习,文末附kotlin版本的注解反射案例替代(findViewById、OnclickListener、intent自动传参)

Kotlin版本,注意需要在class前边添加annotation,注解默认值需要使用kotlin版本下的类型(AnnotationTarget.TYPE,AnnotationRetention.RUNTIME)Java版本,注意需要使用@interface,注解默认值需要使用java版本下的类型(ElementType.TYPE,RetentionPolicy.RUNTIME)@Repeatable注解用于声明标记的注解为可重复类型注解,可以在同一个地方多次使用。仅用于学习注解、反射相关知识。...

2022-08-11 09:57:36 647 1

原创 泛型学习笔记

泛型,即”参数化类型“,把类型当作参数一样传递。这种参数类型可以用在类、接口、和方法中,分别被称为泛型类、泛型接口、泛型方法。我们一般常用的泛型类型变量:T、E、K、V。泛型的extends用于继承和实现,多实现可以用&拼接,如果实现的是具体的类,如List,需要放在第一的位置,只允许实现一个具体的类。泛型中使用extends,是规定我们的泛型类型的类型范围,如果试图传入一个不相符的类型,将会发生编译错误。super A 代表下界,只允许继承A的超类,下限只能继承到A,A的子类不允许继承了。...

2022-08-11 09:47:20 61

原创 利用RxJava解决Retrofit无法取消的网络请求

本文中的使用场景是,下载视频时取消下载后,大文件下载时接口回调会异步返回,无法准确的吐司提示“取消下载”

2022-08-02 15:34:44 1221

原创 超赞databinding报错解决:找不到androidx.databinding.DataBindingComponent的类文件

此问题为依赖model导致的。在basemodel中已经开启了viewBinding和dataBinding,在app项目中没有开启dataBinding就出现了此报错需要检查下自己项目中所有使用viewBinding和dataBinding的model都开启对应的依赖没有,如果使用的model中没有开启则会报错我的项目中,basemodel中开启了viewBinding和dataBinding配置 但是app项目中的配置缺少了dataBinding的配置 解决方式:使用viewBinding和dataBi

2022-07-05 10:18:49 3389

原创 Git 命令行提交代码流程

教你如何快速使用git命令行提交代码到远端仓库

2022-06-12 19:58:06 846

原创 Android悬浮窗,点击Home键,视频小窗口显示在桌面

1.增加悬浮窗权限<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />2.手机8.0需要先去申请悬浮窗的权限btn_permission.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { Class

2021-01-05 11:30:32 1094

原创 记录AndroidStudio的混淆规则

虽然现在都是必须加固的时代了,混淆的作用只是剔除无用的资源了,在这里记录一下混淆规则混淆模板很有用打开项目中的proguard-rules.pro,将下面的代码复制进去。思路就是将混淆分为2个主要部分定制化区域。这里边的内容是我们主要需要补充的部分,大致分为4个小部分,我们接下来的步骤主要是补充这4个部分的东西。 基本不用动区域。顾名思义,基本不用动。这块的内容我已经写好了,除非有特...

2019-08-20 14:39:36 527

原创 京东支付集成遇到的问题记录

集成京东支付时遇到的问题在此记录,望小伙伴不再进坑步骤一:在module_base_ui的build.gradle中android代码块里添加sourceSets { main { jniLibs.srcDirs = ['libs'] assets.srcDirs = ['src/main/assets', 'src/main/assets/'] } }repositories...

2019-06-20 17:48:15 919

原创 Android Studio3.4.1版本默认使用的gradle初始化项目不成功解决方案

在build.gradle中使用classpath 'com.android.tools.build:gradle:3.1.4'在gradle-wapper-.properties中使用distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

2019-06-18 11:03:44 2643

原创 记录问题:org.json.JSONArray与com.alibaba.fastjson.JSONArray使用时不能混淆

org.json.JSONArray array = new org.json.JSONArray();for (int i = 0; i <selectedList.size() ; i++) { org.json.JSONObject obj = new org.json.JSONObject(); try { obj.put("id", select...

2019-06-17 19:46:43 1453 2

转载 Studio打包出现:Errors while building APK. You can find the errors in the 'Messages' view.

这是因为在project中导入了大量的第三方包,导致内存过大,在编译的时候出现的OOM,解决方式在build.gradle中android下添加如下代码dexOptions{ javaMaxHeapSize "4g"}重新打包就正常了...

2019-06-17 18:52:48 8686 3

原创 7.QMUI----QMUICollapsingTopBarLayout的用法 (头部布局)

1. 引入库1.最新的库会上传到 JCenter 仓库上,请确保配置了 JCenter 仓库源,然后直接引用:compile 'com.qmuiteam:qmui:1.0.6'至此,QMUI 已被引入项目中。2.需要引用QMUI的样式&lt;application android:allowBackup="true" android:icon="@mipmap/ic_launche...

2018-02-08 16:44:48 4948 3

原创 6.QMUI----QMUIGroupListView的用法 (条目布局)

1. 引入库1.最新的库会上传到 JCenter 仓库上,请确保配置了 JCenter 仓库源,然后直接引用:compile 'com.qmuiteam:qmui:1.0.6'至此,QMUI 已被引入项目中。2.需要引用QMUI的样式&lt;application android:allowBackup="true" android:icon="@mipmap/ic_launche...

2018-02-08 15:05:26 5256 3

原创 5.QMUI----QMUIBottomSheet的用法

1. 引入库1.最新的库会上传到 JCenter 仓库上,请确保配置了 JCenter 仓库源,然后直接引用:compile 'com.qmuiteam:qmui:1.0.6'至此,QMUI 已被引入项目中。2.需要引用QMUI的样式&lt;application android:allowBackup="true" android:icon="@mipmap/ic_launche...

2018-02-08 11:43:33 4037

原创 4.1QMUI----QMUITabSegment的用法

基本方法:mTabSegment.reset();//重置mTabSegment.notifyDataChanged();//刷新1.只有文字mTabSegment.setHasIndicator(false);mTabSegment.addTab(new QMUITabSegment.Tab("1"));mTabSegment.addTab(new QMUITabSegment.Tab("2...

2018-02-08 11:22:50 8681 2

原创 4.QMUI----QMUITabSegment的用法

1. 引入库1.最新的库会上传到 JCenter 仓库上,请确保配置了 JCenter 仓库源,然后直接引用:compile 'com.qmuiteam:qmui:1.0.6'至此,QMUI 已被引入项目中。2.需要引用QMUI的样式&lt;application android:allowBackup="true" android:icon="@mipmap/ic_launche...

2018-02-07 16:16:30 5277 4

原创 3.QMUI---QDTipDialog的用法

1. 引入库1.最新的库会上传到 JCenter 仓库上,请确保配置了 JCenter 仓库源,然后直接引用:compile 'com.qmuiteam:qmui:1.0.6'至此,QMUI 已被引入项目中。2.需要引用QMUI的样式&lt;application android:allowBackup="true" android:icon="@mipmap/ic_launche...

2018-01-11 17:58:50 2736 2

原创 2.QMUI---QMUIDialog的用法

1. 引入库1.最新的库会上传到 JCenter 仓库上,请确保配置了 JCenter 仓库源,然后直接引用:compile 'com.qmuiteam:qmui:1.0.6'至此,QMUI 已被引入项目中。2.需要引用QMUI的样式&lt;application android:allowBackup="true" android:icon="@mipmap/ic_launche...

2018-01-09 16:58:34 6038 1

原创 1.QMUI----QMUIRoundButton的用法

1. 引入库1.最新的库会上传到 JCenter 仓库上,请确保配置了 JCenter 仓库源,然后直接引用:compile 'com.qmuiteam:qmui:1.0.6'至此,QMUI 已被引入项目中。2.需要引用QMUI的样式&lt;application android:allowBackup="true" android:icon="@mipmap/ic_launche...

2018-01-09 16:24:19 3792 4

原创 集成腾讯浏览器内核X5webview

AndroidStudio直接在main目录下创建jniLib,然后在jniLibs目录下创建armeabi文件夹,再把so放armeabi目录(main——>jniLibs——>armeabi)在build.gradle(Module:app)添加如下代码  创建jniLibssourceSets { main { jniLibs.srcDirs = ['li

2017-08-07 19:01:48 1508

转载 Android Studio 常用快捷键

确保android studio用默认的快捷键  1. Shift+F6 全局修改LZ一般使用这种方式去改全局变量,或者资源名称。2. Alt+F7 查看全局引用LZ一般优化时会使用这个去查看某个方法或者变量全局引用3. Ctrl+Shift+上下键 移动代码4. 强大的 Alt+InsertAlt+Insert,这个快捷键异常强大,里面包含

2017-08-01 09:44:51 518

转载 RecyclerView跳转到指定位置的两种方式

转载解决问题自从android5.0推出RecyclerView以后,RecyclerView越来越受广大程序员的热爱了!大家都知道RecyclerView的出现目的是为了替代listview和ScrollView在列表方面的使用!那么listview和ScrollView的所有功能和方法都应该有的!但是RecyclerView的很多方法,不是封装在RecyclerView中的

2017-02-14 10:29:54 5538 1

原创 Android 视频播放器

//布局        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="#000000" >                    android:id="@+id/icon_layout"   

2017-01-10 15:02:49 542

原创 Android百度定位

android:id="@+id/mapview"        android:layout_below="@+id/l1"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_centerInParent="tru

2017-01-10 14:49:27 266

原创 Android 跳转百度地图网页POI检索

//跳转浏览器   打开百度地图的网页版query=医院(检索的信息)location="+latitude+","+longitude+"&radius=1000(经纬度,检索半径)src=西安扁珍|扁珍健康(公司名称,项目名称)Uri uri=Uri.parse("http://api.map.baidu.com/place/search?query=医院&

2017-01-10 14:42:41 540

转载 ScrollView默认位置不是最顶部最全解决方案

描述:Scrollview里面嵌套了一个listview ,这是开发中最寻常的一种布局,遇到的问题是:在这个Scrollview页面默认的起始位置不是最顶部,而是listview的底部。原因:在Activity计算窗口的高度时,是在listview没有填充数据时候就完成的,由于ScrollView嵌套listview时没有指定高度,所以ScrollView就

2016-12-07 14:13:47 487

原创 关于activity intent跳转出去关闭actvity栈的问题

Intent intent = new Intent(Loan4Activity.this, HomeActivity.class);intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK );startActivity(intent);I

2016-10-31 16:10:08 684

原创 Android Studio 导入ViewpagerIndicator

1:选择插件搜索:com.inkapplications.viewpageindicator:library:2.4.3     点Ok下载完成2:使用配置activity的xml布局:xml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android="http://schemas.and

2016-09-28 12:01:38 1604

原创 安卓 Cordova混合开发 创建插件篇

编写自定义插件类本节的内容是自定义一个dialog插件,供web调用,显示系统弹窗新建一个包名,我这里使用org.apache.cordova.dialog,然后创建个类CustomDialog.java,继承于CordovaPlugin(所有自定义插件,都要继承CordovaPlugin),最后重写execute方法public boolean execute(String ac

2016-09-14 16:34:16 549

原创 安卓 Cordova混合开发 添加插件篇

1.创建应用程序 :cmd 进入一个目录cordova create hello com.example.hello HelloWorld第一个参数hello是工程目录名称  第二个参数com.example.hello是包名 第三个参数HelloWorld是app名称2.添加平台:cordova platform add android

2016-09-14 15:59:34 557

转载 分析Dalvik字节码进行减包优化

Android结合版最近几个版本在包大小配额上超标了,先后采用了包括图片压缩,功能H5,无用代码移除等手段减包,还是有着很大的减包压力。组内希望我能从代码的角度减少一些包大小,感觉有点压力山大。经过一段时间对手q安装包反编译后的Dalvik字节码的分析,发现通过调整Java代码可以减少编译后的Dalvik字节码,从而减少包大小。在这方面我做了许多的尝试,有成功有失败,拿出来给大家分享分享,多拍砖多

2016-07-22 16:23:54 265

转载 深入理解 Android 中的Matrix

原文链接:http://geek.csdn.net/news/detail/89873作者:D_clock在 Android 开发中,矩阵是一个功能强大并且应用广泛的神器,例如:用它来制作动画效果、改变图片大小、给图片加各类滤镜等。对于矩阵,Android 官方 SDK 为我们提供了一个强大的类 Matrix (还有 ColorMatrix )是一直困扰着我的问题,虽然大致

2016-07-22 16:15:44 325

android仿优酷视频播放列表 播放 全屏切换

仿优酷视频播放列表 播放 全屏切换

2017-01-10

android 的视频播放器

支持全屏查看视频

2017-01-10

最新版android-support-v4.jar,V23.2.0

截止2016-08-23最新版android-support-v4.jar,V23.2.0

2017-01-10

空空如也

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

TA关注的人

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