Android进阶
文章平均质量分 87
openJK-dev
这个作者很懒,什么都没留下…
展开
-
Android APK 加固技术探究(三)
Android APK 加固技术探究(一)Android APK 加固技术探究(二)Android APK 加固技术探究(三)为了保证 Android 应用的源码安全性,我们一般会对上线的应用进行代码混淆,然而仅仅做代码混淆还不够,我们还要对我们的应用加固,防止别人通过反编译获取到我们的源码。目前 apk 加固技术比较成熟完善,市面上比较流行的有“360加固”。本文就 apk 加固技术做一个技术探究,希望读者看过后能明白加固的其中原理,并也能自己实现加固方案。源码地址:https://gitee原创 2021-11-01 23:24:56 · 1706 阅读 · 0 评论 -
Android APK 加固技术探究(二)
Android APK 加固技术探究(一)Android APK 加固技术探究(二)Android APK 加固技术探究(三)为了保证 Android 应用的源码安全性,我们一般会对上线的应用进行代码混淆,然而仅仅做代码混淆还不够,我们还要对我们的应用加固,防止别人通过反编译获取到我们的源码。目前 apk 加固技术比较成熟完善,市面上比较流行的有“360加固”。本文就 apk 加固技术做一个技术探究,希望读者看过后能明白加固的其中原理,并也能自己实现加固方案。在 Android apk 加固技术原创 2021-11-01 23:23:21 · 2413 阅读 · 0 评论 -
Android APK 加固技术探究(一)
Android APK 加固技术探究(一)Android APK 加固技术探究(二)Android APK 加固技术探究(三)为了保证 Android 应用的源码安全性,我们一般会对上线的应用进行代码混淆,然而仅仅做代码混淆还不够,我们还要对我们的应用加固,防止别人通过反编译获取到我们的源码。目前 apk 加固技术比较成熟完善,市面上比较流行的有“360加固”。本文就 apk 加固技术做一个技术探究,希望读者看过后能明白加固的其中原理,并也能自己实现加固方案。Android apk 的反编译作原创 2021-11-01 23:21:12 · 1825 阅读 · 0 评论 -
Android 中基于 OKHttp 和 HttpUrlConnection 封装的 Http 请求库
Android 中基于 OKHttp 和 HttpUrlConnection 封装的 Http 请求库1、项目地址Github传送门2、项目说明HttpAgent 是 Android 网络请求框架,可以自定义网络引擎,支持 GET、POST、文件上传、文件下载,可以监听文件下载上传进度。本库内部基于 OkHttp 和 HttpUrlConnection 实现了两套网络请求逻辑,使用者可以根据自己的需要使用其中的某一种类型,或者自己按提供的接口自行实现。3、使用说明1、全局配置HttpAgent原创 2020-08-18 13:47:54 · 545 阅读 · 1 评论 -
Android 中动态提取图片中颜色作为主题色
功能需求一个页面中顶部显示一张图片(图片从网络加载),此时需要根据图片的颜色来动态调整顶部标题栏的背景色。技术要求Android 调色板支持库实现过程1、添加调色板支持库dependencies{ implementation 'androidx.palette:palette:1.0.0'}2、创建调色板实例这里有 2 中方式来创建/** * 同步方式 */fun createPaletteSync(bitmap: Bitmap): Palette = Palette.fro原创 2020-07-17 18:05:07 · 4400 阅读 · 0 评论 -
Android ViewModel使用与源码解析
Android 中的ViewModel的使用主要分为3部分1、创建一个ViewModel类,例如class MyViewModel: ViewModel(){ private val message:MutableLiveData<String> by lazy{ MutableLiveData<String>().also{ ...原创 2019-10-14 17:46:54 · 376 阅读 · 0 评论 -
Android用PopumWindows实现特殊需求
最近有一个特殊的需求----实现按钮点击弹出一个页面,页面在按钮下方显示,下面半透明,上面透明。如图所示首先想到的是使用popumwindows实现。实现方式:popumWindows 弹出方式使用showAsDropDown,然后focusable设置为不获取焦点(因为要在弹出的情况下响应页面上面的筛选点击事件)。遇到问题及解决方法:1、popumwindows的显示高度:s...原创 2019-06-21 18:04:33 · 286 阅读 · 0 评论 -
Android EditText限制输入的最大字符数
需求:EditTtext需要限定输入的字符数量,一个汉字字符占据的是2个字符,一个英文字符占据1个字符。实时监听输入的字符数量,超过字符提示内容长度超限实现思路:通过EditText的InputFilter过滤器实现。1、查看InputFilter这个类,里面有个实现好的限制输入文本长度的静态类LengthFilter,源码如下:/** * This filter will...原创 2019-04-01 13:43:14 · 3253 阅读 · 0 评论 -
继MVP模版后的第二个模版------Adapter模版
具体内容详见Github https://github.com/ShanDianDev/Adapter-Templete快速创建Adapter模版免去创建布局内部类的烦恼原创 2018-10-19 15:14:35 · 143 阅读 · 0 评论 -
Android动画中的插值器Interpolator使用
Interpolator的使用在Android中使用属性动画时可以设置插值器,系统为我们提供了几种已经实现了的插值器类。 分别为: - LinearInterpolator 匀速直线运动 - AccelerateDecelerateInterpolator 中间快两头满 - AccelerateInterpolator 开始慢然后快 - AnticipateInterpolator ...原创 2018-08-10 13:32:08 · 1192 阅读 · 0 评论 -
用Kotlin写一个RecyclerView的自定义分割线
很多时候我们在用RecyclerView时需要用到分割线。有时候图省事就用了一个View布局给他设置个背景色来实现,这样做虽然可以实现分割线的效果,但是这么做是不是有点low了。。。。其实RecyclerView自己就有设置分割线的方法addItemDecoration,通过这个方法我们可以很方便的设置分割线。同时系统还为我们提供了一个分割线的类DividerItemDecoration。...原创 2018-07-27 14:45:12 · 2047 阅读 · 1 评论 -
Kotlin写一个自定义的菜单控件
首先贴一下效果图思路:菜单控件分两部分,一是点击的子按钮(RecordButton),二是包裹着子按钮的容器(RecordMenu)。子按钮负责显示文字及背景颜色和点击事件,父容器主要控制子控件的位置和动画显示。实现:子按钮,先贴代码class RecordButton : RelativeLayout { /** 控件显示的文本*/ lateinit v...原创 2018-07-26 13:44:59 · 2680 阅读 · 0 评论 -
Android JNI(NDK)简单学习(环境搭建,创建一个JNI项目的基本流程)
最近在看Android增量更新的这块内容,发现需要用到Android JNI的这块知识,因此就简单的学习了一下。记录下学习的内容,以便以后再用到。参考:http://blog.csdn.net/shulianghan/article/details/18964835#1、环境搭建,无论做什么开发第一步肯定是搭建环境,这里也不例外依据官方GUIDES,知道要下载三个部分文件,分别是:原创 2016-10-14 15:39:21 · 483 阅读 · 0 评论 -
Glide使用及说明
Glide是一款Google推荐的图片加载库,它功能强大,我们不但可以通过他来加载本地存储的图片,还可以加载网络上或者是Uri路径的图片。除了加载图片之外,我们还可以通过他来加载GIF图片和本地的Video。在加载图片之后我们还可以他来设置图片的大小,图片缓存,图片的显示动画还有缩略图等等。总之作为一款图片加载库Glide是非常优秀的。说了这么多下面就让我们看看他是怎么用的吧。一、加载一个图片原创 2016-09-28 18:08:23 · 472 阅读 · 0 评论 -
Android中使用LruCache缓存技术缓存数据
LruCache是Android提供的一个缓存工具类,该工具类依赖于最近最少使用的算法,这种算法的原理即是把最近使用的对象用强引用存储在LinkedHashMap中,并且把最近最少使用的对象在缓存值达到峰值时把它从内存中移除。下面来讲解下,如何用该工具类缓存数据(这里我用了一个RecyclerView加载图片的Demo)1、初始化LruCache初始化LrcCache 首先得给它设原创 2016-09-29 17:14:17 · 699 阅读 · 0 评论 -
Android获取输入法高度
activity_check.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener(){ @Override public void onGlobalLay原创 2017-04-01 17:35:31 · 1398 阅读 · 0 评论 -
Android对话框中设置内容背景色是透明的
1. 尝试getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(0));在你的DialogFragment的onCreateView 2. 试试这个(我如何创建一个100%自定义 这项工作的对话框 Dialog dialog = new Dialog(getActivity()); dialog.ge转载 2017-07-14 10:31:49 · 2424 阅读 · 1 评论 -
Android软件性能检测工具讲解
1 静态代码质量检测工具Android Studio—>Analyze—>Inspect Code通过静态代码质量检测工具可以删掉工程中无用的资源文件、发现潜在的内存泄漏问题、明显的代码问题、简化代码等等,如下图它列举出了所有的存在的问题,点击进行修改2 使用严格模式(StrictMode)StrictMode就是用来指定一系列策略(policy),对相应规则(rule)原创 2017-10-17 15:08:46 · 512 阅读 · 0 评论 -
java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMerger
对你表示同情,因为你遇到了这个bug,但是还得恭喜你,因为这篇文章将帮助你解决这个bug。android项目在构建时不会报这个错,但是一运行就会报这个错,这个错的意思是在你的项目中引用了相同的包。知道问题所在那么我们就来解决问题。1、找到引用了相同包的依赖,例如我的项目中用了compile'com.squareup.okhttp3:okhttp:3.7.0'在okhttp中同时引用原创 2018-02-01 15:07:41 · 11504 阅读 · 5 评论 -
Android中获取输入法高度,根据输入法高度调节文本框的位置
可能大伙儿都发现了Android中并没有直接提供给我们获取输入法高度的方法,但是接下来提供的方法却能帮我们间接获取输入法高度。直接上代码rl_finance_detail.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() {原创 2018-02-05 14:23:20 · 1425 阅读 · 0 评论 -
Android activity页面跳转-共享元素
Android5.0之后支持Activity页面跳转使用共享元素,所谓共享元素即是在两个Activity(A,B)中设置两个控件(a,b),从A跳转到B时让两个Activity平滑的从a过度到b。效果图如下下面就来记录一下实现的过程1.首先在需要跳转的两个Activity的布局中找到你需要共享的控件<android.support.constraint.ConstraintLayout xm...原创 2018-06-22 11:08:04 · 1181 阅读 · 0 评论 -
Android中已经添加权限,依然提示缺少权限,此时你需要添加动态权限
最近在开发项目时,项目需要获取系统的WRITE_EXTERNAL_STORAGE权限,然后就在清单文件AndroidManifest中添加了该权限,但是在系统运行后发现并没有创建该有的文件,然后查看了一下日志发现系统提示没有获得权限,之后在网上搜索了下发现Android6.0之后需要动态获取这种权限,然后改了一下果真可以了,下面把动态获取权限的过程讲解一下,以备将来查看和帮助哪些遇到同样问题的人。原创 2016-09-19 11:22:20 · 10869 阅读 · 1 评论