![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
惺惺作态
这个作者很懒,什么都没留下…
展开
-
使用 shadow 打jar包把添加依赖
在app的build.gradlebuildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "gradle.plugin.com.github.johnrengelman:shadow:7.1.2" }}在module下build.gradle处添加apply plugin: "com.git...原创 2022-05-17 10:52:34 · 1740 阅读 · 0 评论 -
android studio java-library 打包jar中没有主清单属性
android studio java-library 打包jar中没有主清单属性原创 2022-05-13 11:58:25 · 981 阅读 · 1 评论 -
如何查看apk包里的targetSdkVersion
1、找到sdk下aapt文件 ,在build-tools/sdk版本/aapt文件2 输入命令 aapt dump badging /Users/xxx/Documents/demo.apk原创 2021-07-20 11:03:30 · 1403 阅读 · 0 评论 -
TextView超出限定长度显示省略号
<TextView android:layout_height="45dp" android:layout_width="wrap_content" android:text="何问起 hovertree.com" android:textSize="15sp" android:singleLine="true" android:layout_margin..原创 2021-04-15 10:08:09 · 690 阅读 · 0 评论 -
你写的单例模式,能防止反序列化和反射吗?
前言说起单例模式,相信大家都不会陌生。因为相比其他设计模式,实现一个单例模式是比较简单的。单例模式的意思就是一个类只有一个实例。获取类的实例,我们往往采用new关键字,但是要保证一个类只能有一个实例,所以不能让使用这个类的开发人员利用new关键字来创建实例。也就是不能让外部调用类的构造方法,所以很容易想到类的构造方法私有,这样开发人员就不能在类之外通过new的方法创建该类的对象了。由于外部不能通过new关键字来创建单例类的对象了,所以单例类本身必须提供一个静态方法,使得外部可以通过类名 + 方法名的方原创 2021-02-01 10:18:14 · 325 阅读 · 0 评论 -
在小米手机上调节亮度出现失常问题
小米的新版系统(大于MIUI9),取到的当前亮度值是远大于255的,应该是小米修改了系统亮度的最大值(不知道小米是出于什么原因修改的)。所以最大值要根据系统版本动态获取。public static final int MAX_BRIGHTNESS_VALUE = 230; //设置的最大亮度值 /** * 判断是否开启了自动亮度调节 * * @param context * @return */ public static boolean I原创 2020-12-15 17:30:43 · 1922 阅读 · 0 评论 -
Android应用程序的安装和显示过程
原创 2020-11-19 00:06:58 · 166 阅读 · 0 评论 -
Linux/Ubuntu系统下反编译apk
Linux/Ubuntu系统下反编译apkenjarify 反编译apk,jadx 查看jar源码,apktool查看资源文件一、enjarify 反编译apk$ git clone https://github.com/google/enjarify.git$ cd enjarify$ ./enjarify.sh yourapp.apk二、jadx 查看jar源码1.build jadx$ git clone https://github.com/skylot/jadx.git$ cd原创 2020-09-25 10:25:19 · 1694 阅读 · 1 评论 -
android获取crash信息
public class ApiCrashHandler implements Thread.UncaughtExceptionHandler { private final Logger mLog = LoggerFactory.getLogger(ApiCrashHandler.class.getSimpleName()); private static ApiCrashHandler mCrashHandler; private Context mContext; p原创 2020-08-13 15:02:21 · 245 阅读 · 0 评论 -
android一行命令实现多渠道打包并自动进行资源混淆(Walle,AndResGuard)
多渠道打包和资源混淆的作用这里我就不再阐述了。网上有很多。本篇博客我们来介绍一下如何实现多渠道打包之前先进行资源混淆,这样一来我们打出来的包都是已经进行过资源混淆的了。如果你还有其他的需求,也可以按照这个方法实现。多渠道打包(Walle)这里多渠道打包我使用的是美团的Walle,具体的使用方式Github上已经介绍的很详细了。这里我先来实现一下多渠道打包首先按照说明集成一下walle和签名配置配置build.gradle在位于项目的根目录 build.gradle 文件中添加Walle Gr转载 2020-07-20 09:26:21 · 684 阅读 · 0 评论 -
requestLayout方法和invalidate 方法比较
requestLayout方法和invalidate方法自定义View的时候难免会和这2个方法打交道,在之前的文章中我们已经介绍了invalidate方法,今天我们来对比下requestLayout方法和invalidate方法有什么不同之处等不及的先给个结论:requestLayout方法会导致View的onMeasure、onLayout、onDraw方法被调用;invalidate方法则只会导致View的onDraw方法被调用requestLayout方法源码分析//View.class@原创 2020-06-30 21:48:34 · 649 阅读 · 0 评论 -
反射机制中获取private成员的值
我们来看下例子:@Datapublic class Demo { public String name; private String title;}public class Test { public static void main(String[] args) { try { Class clazz = Clas...原创 2019-12-28 11:58:12 · 1593 阅读 · 0 评论 -
Gradle配置lintOptions
android { lintOptions { // true--关闭lint报告的分析进度 quiet true // true--错误发生后停止gradle构建 abortOnError false // true--只报告error ignoreWarnings true // true--忽略有错误的文件的全/绝对路径(默认是true) //absolutePaths true // tr...原创 2019-11-14 23:56:32 · 165 阅读 · 0 评论 -
Gradle sync failed: Cause: error=13, 权限不够
对整个android-studio项目执行权限放开即可chmod 777 * -R原创 2019-10-12 16:47:08 · 960 阅读 · 0 评论 -
线程池,这一篇或许就够了
作者简介本篇来自 _liuzh 的投稿,主要给大家讲解了线程池的具体实现类ThreadPoolExecutor,希望对大家有所帮助。_liuzh 的博客地址:http://blog.csdn.net/lift_class为什么使用线程池1. 创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处理效率,例如:记创建线程转载 2018-05-15 22:52:28 · 123 阅读 · 0 评论 -
封装Retrofit2+RxJava2网络请求框架
因为Retrofit方便使用和支持RxJava,所以Retrofit已经成为了非常流行的网络框架。学会封装和使用Retrofit网络请求框架练练手是提升自己架构水平一个非常好的示例。而且当成功封装第一个组件时,再次遇到需要封装组件这样的任务也会变得得心应手。1、封装的主要逻辑主要的逻辑根据这个逻辑图一步一步封装网络框架吧。1.1 导入依赖 compile "io.r...转载 2018-10-08 18:20:00 · 531 阅读 · 0 评论 -
svn: E155004: There are unfinished work
Error:Error performing cleanup for ‘T:\idea_workspace\QMS’: svn: E155004: There are unfinished work items in ‘T:\idea_workspace\QMS’; run ‘svn cleanup’ first.总是清理不掉 最后只有放大招: 打开.svn/wc.db 删除表delet...原创 2018-07-25 11:27:47 · 505 阅读 · 0 评论 -
安卓开发由一个APP拉起另一个APP的方法总结
最近公司在对接第三方应用的时候有两个需求:1、要由我们的客户端拉起第三方的客户端,并且传值。2、要让第三方客户端能够拉起我们的客户端,并可以根据传递过来的值启动相对应的页面。 经历了掉坑~爬出~又掉坑~再爬出…反复的历练以后,我决定把一些掉坑的经验,sorry,口误,应该是爬坑的经验记录下来,以便以后复习查看。我们的终极目标是——永不掉坑! OK,开始正题:一、需求场景:A应用拉起B应...转载 2018-07-24 11:18:54 · 1379 阅读 · 0 评论 -
Kotlin打造完整电商APP 模块化+MVP+主流框架
Kotlin打造完整电商APP 模块化+MVP+主流框架第1章 课程介绍(讲师参与学习讨论)本章会告诉大家能学到什么,课程如何安排,整个APP的效果以及用户购买流程,同时为大家讲解模块化思想,MVP架构思想,项目技术选型,项目初始化,为后面具体的开发做好准备。效果图预览:https://pan.baidu.com/s/1hsXUBUO 密码:x0cm,提供QQ交流群...1-1 课程导学1-2 项...原创 2018-06-08 00:10:07 · 1184 阅读 · 0 评论 -
Android studio 自定义打包APK名称
Android Studio打包应用默认生成的apk名称是:app-release.apk 、如果我们要让生成的apk名跟我们版本包名有联系的话,那我们就要自定义生成的apk名了,要怎么做呢。我们只需要再build.gradle文件下android{ }下添加:[html] view plain copyandroid.applicationVariants.all { variant ->...原创 2018-06-14 11:44:34 · 563 阅读 · 0 评论 -
android提高之结构
我将依次的和大家介绍一下 MVVM、MVP、MVC、AndroidFlux 这几种主流的架构设计,本文中不会很深入的分析这些架构的代码上有何区别,只是将它们的设计思路带给大家,让大家更方便的选择在项目适用的架构。MVCMVC 简单来说就是将整个应用分为 Model、View 和 Controller 三个部分视图(View):管理作为位图展示到屏幕上的图形和文字输出。控制器(Controller)...原创 2018-06-07 09:03:28 · 345 阅读 · 0 评论 -
使用 Android Jetpack 加快应用开发速度
本文转自:http://developers.googleblog.cn/2018/05/android-jetpack.html今天,我们高兴地推出 Android Jetpack,这是我们的新一代组件、工具和架构指导,旨在加快您的 Android 应用开发速度。Android Jetpack 深受支持库的启发,支持库包含的组件可以让您轻松利用新 Android 功能,同时保持向后兼容性;现在,...转载 2018-06-06 09:31:52 · 1723 阅读 · 1 评论 -
Android Studio 主题、字体大小的设置
学习Android Studio中碰到的问题,总结至此:1、 Android Studio 主题的设置:设置Android Studio 自带的主题设置第三方主题2、 Android Studio 字体的设置设置左面包名的字体大小设置右面代码编辑界面字体大小1.1 设置Android Studio 自带的主题及包名字体大小: 1.2 导入第三方主题: http://www.ideacolorthe...原创 2018-05-16 10:49:49 · 206 阅读 · 0 评论 -
eventbus3-intellij-plugin插件搜不到
一、eventbus3-intellij-plugin插件搜不到 二 下载eventbus3-intellij-plugin.jar原创 2018-05-18 12:00:04 · 689 阅读 · 0 评论 -
android项目构建
背景:android开发也有一段时间了,今天记录下android开发从0开始都要写写什么东西。 1 确定开发框架 MVP或MVVP 2 网络框架3 图片加载4 BaseActivity5 BaseAdapter6 SharePerfences7 数据库框架8 上拉刷新下拉加载库9 自定义加载中Dialog 10 常用自定义控件11 json解析12 图片文件上传、下载13 pazhao...原创 2018-05-15 22:54:27 · 155 阅读 · 0 评论 -
Android-Lifecycle 解析
版权声明:本文已授权微信公众号:Android必修课,转载请申明出处众所周知,Android凡是需要展示给用户看的,都包含着生命周期这个概念,例如Activity、Fragment、View等都与生命周期息息相关,在生命周期函数里,它们各自完成创建、渲染、销毁等工作。但是一旦我们往某个生命周期函数中,加入我们自己的逻辑,若是处理不当,就有可能破坏其原有的生命周期,造成内存泄漏甚至应用...转载 2018-10-25 17:41:42 · 1043 阅读 · 0 评论 -
Android使用Gradle依赖配置compile、implementation与api的区别介绍
前言AndroidStudio升级到3.0之后,gradle版本也随之升级到了3.0.0版本。当gradle插件升级到3.0.0及以上后,我们会发现在gradle中添加依赖的时候,会推荐你使用implementation或者api,而不再推荐你使用compile,今天就来简单介绍下这两者的使用与区别! 1 classpath 'com.android.too...原创 2018-10-23 16:01:59 · 1212 阅读 · 0 评论 -
android studio插件下载失败
android studio插件下载失败preferences-> apprearance& behabior ->system settings->updates-> Use secure connection 去勾然后就能随意下载了原创 2018-10-24 11:59:38 · 549 阅读 · 0 评论 -
Android报错:JNI/NDK相关
Error:Execution failed for task ':app:compileDebugNdk'.> NDK not configured.Download the NDK from http://developer.android.com/tools/sdk/ndk/.Then add ndk.dir=path/to/ndk in local.properties.(On原创 2017-04-11 17:40:56 · 367 阅读 · 0 评论 -
ASM
认识 .class 文件的字节码结构访问者模式和 ASMASM 库的介绍和使用从 Java 字节码到 ASM 实践原创 2019-10-08 17:43:12 · 121 阅读 · 0 评论 -
mp4视频 视频测试地址(在线MP4文件)
最近在做播放器调试,奈何没有现成的视频资源,找了一圈 分享一下,预防下次使用。驯龙高手 http://vfx.mtime.cn/Video/2019/02/04/mp4/190204084208765161.mp4《紧急救援》http://vfx.mtime.cn/Video/2019/03/21/mp4/190321153853126488.mp4玩具总动员http://vfx.mtime.c...转载 2019-07-09 22:26:02 · 2069 阅读 · 1 评论 -
Android高级开发书籍
程序设计一、java(a)基本语法(如继承、异常、引用、泛型等)Java核心技术 卷I(适合入门)进阶Effective Java中文版(如何写好的Java代码)Java解惑 (介绍烂Java代码是什么样的)(b)多线程、并发Java并发编程实战 (系统全面的介绍了Java的并发,如何设计支持并发的数据结构)java多线程编程核心技术Java高并发编程详解(c)Jav...转载 2019-06-02 21:00:17 · 571 阅读 · 0 评论 -
OkHttp3分析
OkHttp3是一个精巧的网络请求库,有如下特性1)支持HTTP2,对一台机器的所有请求共享同一个socket2)内置连接池,支持连接复用,减少延迟3)支持透明的gzip压缩响应体4)通过缓存避免重复的请求5)请求失败时自动重试主机其他的ip,自动重定向6)好用的APIOkHttp请求划分为三个阶段1 OKHttpClient+Request构造RealCall2 Real...原创 2019-05-06 17:02:08 · 486 阅读 · 0 评论 -
Android跨进程通信:图文详解 Binder机制 原理
https://blog.csdn.net/carson_ho/article/details/73560642原创 2019-04-25 17:12:33 · 190 阅读 · 0 评论 -
Linux SVN命令
1 megercd 到当前目录下$ svn merge svn://XXXXXX/mpos/trunk/XXXX/Android/XXX原创 2019-09-03 11:49:58 · 139 阅读 · 0 评论 -
state 生命周期
State拥有一套自己的生命周期,下面做一个简单的介绍。 几个注意点 didChangeDependencies有两种情况会被调用。 创建时候在initState 之后被调用 在依赖的InheritedWidget发生变化的时候会被调用 正常的退出流程中会执行deactivate然后执行dispose。但是也会出现deactivate以后不执行dispose...原创 2019-01-08 11:04:34 · 442 阅读 · 0 评论 -
Android studio 下JNI编程实例并生成so库
最近需要使用JNI编程,学了下JNI,并且在Android Studio下实现了一个小demo。这期间有一些坑,还好都解决了,想分享出来,希望大家少走弯路。本文中采用的平台是Windows,NDK环境已经搭建好,这方面资料很多,大家可以自行百度。本文分为两个部分: 1.如何通过编写Jni实现native方法的调用。2.怎样生成.so动态库提供给第三方使用。1.如何通过编写Jni...转载 2018-12-06 16:10:01 · 192 阅读 · 0 评论 -
Android热修复——Tinker的集成
前言做前端开发的都知道,当我们项目做完了以后,都会把应用上传到应用市场上供用户下载使用,比如上传到应用宝啊,应用汇啊,360啊,小米,华为,魅族啊,等等但是,有时候我们会经常遇到一些很扯淡的事情,刚刚熬夜加班将项目发到应用市场上,第二天,又发现一个严重bug,难道是开会研究看看是否能在下一版解决?还是将bug解决了,在给测试进行测试,然后再发版?如果从新发版,这个成本太高了,那怎么办呢,今...原创 2018-11-30 19:30:27 · 562 阅读 · 0 评论 -
Android高级开发必读书单
看到有个进阶书单 感觉还不错,转载给自己做个笔记了程序设计一、java(a)基本语法(如继承、异常、引用、泛型等)Java核心技术 卷I(适合入门) 进阶 Effective Java中文版(如何写好的Java代码) Java解惑(介绍烂Java代码是什么样的) (b)多线程、并发Java并发编程实战(系统全面的介绍了Java的并发,如何设计支持并发的数据结构)...原创 2018-10-19 10:01:29 · 344 阅读 · 0 评论 -
关于webView 上传文件问题解决
1 自定义 WebChromeClientpackage com.shuhao.webchromeclient;import android.annotation.TargetApi;import android.content.Intent;import android.net.Uri;import android.os.Build;import android.webk...原创 2019-02-18 16:52:00 · 510 阅读 · 0 评论