android进阶
文章平均质量分 84
关于android项目中遇到的一些问题。或者是一些分享
黎明孤日
游侠。最为过来人的(free)无偿分享,随心,随性。
展开
-
Android:我在学习MVVM+Architecture架构
onSaveInstanceState()支持少量数据的,支持序列化数据,支持持久化数据viewmodel :不支持持久化的数据,当页面销毁,viewmodel保存数据就会清除。BindAdapter是基于APT注解技术的,APT可以在项目代码构建的时候,根据相关编写规则,生成特定代码,完成指定功能。BindAdapter提供了一个高自由的切片编程能力,允许在xml解析是绑定扩展行为,可以完成事件监听,属性赋值,类型转换,统一业务处理,比如埋点处理,防重按等,BindAdapter是DataB.原创 2021-08-04 13:49:20 · 219 阅读 · 0 评论 -
apk安全加固、加壳、脱壳技术
为了增加apk的安全性,防止被反编译破解(例如:常用到的反编译工具jadx-gui)。apk在开发时,开发者会在工程项目proguard-rules.pro文件内加入google常用的混淆,并用加密秘钥(key alias)加密打包之后,也会用一些第三方加固方式(加固、一定程度的压缩、安全性增强)或者apk加壳技术(文件会压缩、安全性增加、缺点:版本更新后不可用)加固出包。apk目前 常用的加固方式:腾讯乐固、360加固和爱加密、或者使用官网网站加固:腾讯加固地址360加固有个缺点:加固后的apk会原创 2021-06-06 10:20:25 · 4600 阅读 · 3 评论 -
个人常用的androidstudio的项目配置
problem 1:Current version of Gradle Gradle 4.6 is not compatible with Kotlin plugin. Please use Gradle Gradle 4.9 or newer or previous version of Kotlin plugin.原因:AndroidStudio Gradle版本不匹配解决方案:将gradle-wrapper.properties文件的distributionUrl值改成对应的gradle版原创 2020-11-06 15:17:11 · 726 阅读 · 0 评论 -
android 9.0适配笔记
1、项目中的targetSdkVersion改为 282、android 9.0默认使用的是网络传输层安全协议(TLS),https代替http.网络适配应该在 res 目录下新建xml文件夹,添加network_security_config.xml文件<?xml version="1.0" encoding="utf-8"?><network-security-config> <base-config cleartextTrafficPermitted原创 2020-10-23 14:21:22 · 273 阅读 · 1 评论 -
暨完成【一键清理】项目引用资源总结奖励大会
如何使用AndroidStudio将Module项目导出成Jar和arr库“有权查看使用情况的应用”手机安全卫士,类似360手机助手,主要有归属地查询,电话拦截,病毒扫描,进程管理等功能。原创 2020-09-10 16:40:01 · 596 阅读 · 0 评论 -
完美解决android studio4.0.1下载gradle-6.1.1-all.zip速度慢问题
为了解决在线下载gradle-6.1.1速度慢问题,将gradle-6.1.1资源分享出来.下载链接: https://pan.baidu.com/s/1h0reGfGlTbYDLJCp0DzFTw提取码: ta8c配置:下载完该资源之后找到下图所示的路径下的gradle配置资源替换调里面的gradle-6.1.1-all.zip就行...原创 2020-09-10 16:19:23 · 3107 阅读 · 0 评论 -
android 用包名、类名跳转到系统设置界面(任一界面)
一般情况下,打开系统某个界面,使用系统唯一标识:Settings.xxx但是在有些不同的机器不一定适用。也要查询不同界面对应的唯一标识;具体可以查看:Android中跳转到系统设置界面大全cmd进入命令行界面,使用adb shell dumpsys window | findstr mCurrentFocus 命令,查看当前运行的包名和Activity更清晰一些。例如:上面的进入电池界面,对应的包名和类名为:“com.android.settings/.Settings$PowerUsageSu原创 2020-09-03 16:07:06 · 2085 阅读 · 0 评论 -
欢迎界面正确启动方式,总结5种方法
现在基本上每个app都有自己的引导页或者欢迎界面,用来展示公司logo或者广告浏览、也有一些产品需求是达到一定的界面美化,做一个闪屏界面再进入主界面。不至于显示内容太过突兀。项目需求最终应该实现效果:1、用户刚安装apk,进入应用跳转欢迎界面。2、应用被完全杀死,再进入应用,跳转欢迎界面3、使用期间,如果应用在后台运行,再次进入程序,不显示欢迎界面4、(冷启动修复)进入主界面等待时间减短30%。(巧用欢迎界面)5、MainActivity必须具有桌面属性。实现功能不难,但是根据不同的项目有不用原创 2020-07-30 15:04:01 · 2834 阅读 · 0 评论 -
如何写一个安全的手机验证码登录功能
直接画了张简单的示例图进行展示最终效果。用户输入手机号码,激活码(可以理解为一个约束条件)后,点击获取验证码,向后台发送验证码请求,就可以从后台返回一个验证码哈希值(暂且定义为:et_token),后台请求短信验证码发送到用户手机上。用户填写验证码后,就可以点击登录,登录的时候发送手机验证码和et_token校验请求。所以总共需要发送两个请求。请求方式是使用Xutils已经封装好的的http请求。可以点击查看:Android请求服务器获取短信验证码实现注册功能里面介绍的挺详细的。这里需要注意三个地原创 2020-07-17 11:14:56 · 1653 阅读 · 0 评论 -
详细解决:The application could not be iinstalled :INSTALL_FAILED_CONFLICTING_PROVIDER
问题复现:在使用android studio,运行老项目,给真机安装调试的时候。The application could not be iinstalled :INSTALL_FAILED_CONFLICTING_PROVIDER意思就是:应用安装失败:安装失败是因为Provider冲突(就是你要安装的apk里面存在一个和真机上相同authorities的provider)安装失败:provider冲突图示一:直入主题:解决办法查看项目AndroidManifest.xml文件里面的pr原创 2020-07-17 10:18:55 · 15790 阅读 · 4 评论 -
android关于jar包重复、jar包类重复问题的解决
经常的,在android 开发中,项目普遍的喜欢引入大量的第三方库,在完成项目功能需求的同时,也可以减少自己项目的代码量。何乐而不为。常用的引入第三方库大致可以分为两种方式,1、以jar包,aar包、放在libs、jniLibs目录下,或者以library Module的形式放置在工程目录下。2、以Gradle依赖的远程依赖的形式下载引入。因此复杂的依赖关系容易产生重复导入jar包,重复引用jar包类的问题。对此,也有响应的几个方法进行处理。jar包重复导入主要有本地 Jar 包重复嵌入和== Gr原创 2020-07-14 15:10:19 · 8754 阅读 · 6 评论 -
kotlin语言常用功能代码总结篇
创建自定义弹框:val view = LayoutInflater.from(context).inflate(R.layout.dialog_no_net, null, false)val builder = AlertDialog.Builder(context)builder.setView(view)val mDialog= builder.create().also { noNetDialog=it }mDialog.window!!.setBackgroundDrawable(Colo原创 2020-07-02 17:17:23 · 428 阅读 · 0 评论 -
Android 的smallestWidth适配
由于市场上的各式各样的机型,尺寸也是各式各样。最近在项目里面也做过比较多的界面适配。对比下来,使用smallestWidth的适配较稳定。适配工具:dimens_sw工具设计思路:在dimens_sw项目中DimenGenerator.class添加设计稿的高度和宽度尺寸,运行项目后可以获取到smallestWidth值,再根据获取到的smallestWidth值,在DimenTypes.class文件中配置DP_sw__smallestWidth(smallestWidth),其中smallestWi原创 2020-06-30 11:30:23 · 739 阅读 · 0 评论 -
Android项目aar、jdk打包
先问个问题:1秒钟转化为long类型等于多少?首先、先理解jar与aar的简单区别:*.jar:只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。*.aar:包含所有资源 ,class 以及 res 资源文件全部包含在我们成型的项目中打包步骤修改app下的bulid gradle文件:把apply plugin: 'com.android.application’修改成apply plugin: ‘com.android.library’注释调defaul原创 2020-06-24 19:41:07 · 340 阅读 · 0 评论 -
Android 系统签名(踩坑记)
Android 系统签名:1、AndroidManifest加上:android:sharedUserId=“android.uid.system”android代码就不用改其他的,剩下的就是使用第三方签名。比如使用ftp地址签名(我的项目使用的就是上传到ftp文件系统中,系统自动给你签名、有些公司的加密文件涉及安全性较高,不能直接给你发加密文件.keyStore。甩给你一个ftp地址)2、注意:签名可以二次签名,(可以在android studio先进行签名,然后打包apk,给第三方系统签名),但是原创 2020-06-24 19:22:16 · 1043 阅读 · 0 评论 -
从json文件中读取内容方法(kotlin)
封装方法:从文件中读取内容转成json字符串,然后json字符串转列表原创 2020-06-15 09:50:12 · 2775 阅读 · 0 评论 -
launcher图标被替换成其他图标
launcher图标突然被初始化成其他图标怎么办?本来好好的,添加一个arr包之后,launcher图标突然其他图标被取代了。啰嗦两个知识点(做个笔记)什么是AAR包? AAR包相比于jar包,区别在哪儿?aar包含所有资源,class,xml布局文件以及res资源文件全部包含。jar只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。捎带解释一下so库android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从201原创 2020-06-11 10:03:24 · 401 阅读 · 0 评论 -
android应用多渠道开发
最近的每天都在做着选择,每天都是一个转折点。形形色色、错综复杂。在项目开发中经常的遇到这样的问题,公司已经对一些模块已经集成好了,而我们只需要根据用户需求进行定制。只需要重新编写界面布局代码,然后再去调用相应模块就行。总的来说就是多渠道开发1、多渠道打包对生成的apk包进行定制,使用:productFlavorsproductFlavors {//多渠道打包 xiaomi { applicationId 'com.wuxiaolong.gradle4a.原创 2020-06-05 16:11:09 · 486 阅读 · 0 评论 -
Android几种重要的设计模式,你知道的有哪些(详细介绍)
设计模式有哪些?(一张图就可以了).项目中常用的设计模式(1)、模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,如jdbcTemplate(2)、代理模式spring的Proxy模式在AOP中有体现(3)、观察者模式定义对象的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新(4)、适配器模式MethodBeforeAdviceAdapter类。(5)、策略模式使用了java的继承和多态(6)、单例模式解决了一个全局使用原创 2020-06-03 10:13:49 · 882 阅读 · 0 评论 -
Android studio 项目签名
Android签名是为了保证应用发布者是本人,大致有几种:以前Eclipse用keyStore进行签名;现在Android Studio开发app采用JKS签名;Android系统签名采用的是pem/pk8.每个Android App都会有自己的签名,如果我们没有指定签名,编译时会默认用SDK目录下的debug签名文件。常见的签名jks在Android studio中有两种方式给app签名,一种是build时generate signed apk;一种是在build文件中配置签名信息。使用方法如下:原创 2020-06-03 09:58:16 · 606 阅读 · 0 评论 -
常用数据算法的理解
排序算法有哪些?冒泡排序:原创 2020-06-03 09:50:21 · 824 阅读 · 0 评论 -
如何给应用添加讯飞语音功能
1、上传代码到码云(私有仓库)详细步骤2、android studio上如何测试release.apk3、如何给应用添加讯飞语音功能4、git提交新版本到远程仓库原创 2020-04-30 10:11:38 · 349 阅读 · 0 评论 -
Android如何创建马甲包
Android如何创建马甲包:跳转地址原创 2020-04-29 10:22:16 · 486 阅读 · 0 评论 -
Android版本更新
Android检查版本更新、发现新版本后进行更新安装。MainActivity.java使用Update工具类,app_down_id是后台对应项目的更新序号(按照自己项目是否需要这个进行选择)protected void onResume() { super.onResume(); Update.CheckUpdate(this, getResources().getS...原创 2020-04-28 16:32:30 · 550 阅读 · 0 评论 -
Android 使用 jsoup 解析 html抓取元素
Android 使用 jsoup 解析 html抓取元素一句话处理Fragment跳转下一个fragment在线JSON在线校验String、StringBuffer和StringBuilder的区别Java字符串使用方法replaceAll(String regex, String replacement)原创 2020-04-28 15:15:47 · 340 阅读 · 0 评论 -
FrameLayout与底部导航栏的搭配使用
方法一:ViewPager与底部导航栏的搭配使用方法二:FrameLayout与底部导航栏的搭配使用(底部导航栏使用了第三方依赖库)可点击底部导航栏切换界面为了快速编写代码。底部导航栏使用了第三方依赖库 implementation 'me.majiajie:pager-bottom-tab-strip:2.2.5'activity_home.xml <me.majiaj...原创 2020-04-26 13:43:34 · 1115 阅读 · 0 评论 -
ViewPager与底部导航栏的搭配使用
方法一:ViewPager与底部导航栏的搭配使用方法二:FrameLayout与底部导航栏的搭配使用(底部导航栏使用了第三方依赖库)可滑动、可点击切换界面activity_home.xml <LinearLayout android:layout_width="fill_parent" android:layout_hei...原创 2020-04-26 13:33:43 · 848 阅读 · 0 评论 -
上传本地代码及更新代码到GitHub教程
上传本地代码及更新代码到GitHub教程ViewBinding.java:4: 错误: 程序包android.support.annotation不存在经验总结-谈谈我对AppcompatActivity的认识Failed to resolve: com.android.support:appcompat-v7:26.0.0RxTool原创 2020-04-24 16:56:48 · 243 阅读 · 0 评论 -
Android Studio的一些实用配置
1.Android Studio的一些实用配置2.Android Studio 精品插件推荐3.Android activity跳转动画6种activity进入动画4.Android中UID与PID的作用与区别5.windowmanger的addview,removeView方法出现的异常6.android设置横屏和竖屏的方法7.countDownLatch原创 2020-04-22 18:08:52 · 228 阅读 · 0 评论 -
android 版本号适配 9.0网络请求方法
河马过河[android 版本号适配 9.0网络请求方法](http://www.cocoachina.com/articles/29242)版本更新适配android9.0动态权限获取原创 2020-04-20 17:00:10 · 602 阅读 · 0 评论 -
AS,githup常见问题汇总(持续加入中)
github 提交代码的时候:1、fatal: unable to access ‘https://github.com/wenfujing/AnimationClean.git/’: Coul d not resolve host: github.com图示:解决办法:https://blog.csdn.net/qq_38415505/article/detail...原创 2020-04-16 17:57:07 · 223 阅读 · 0 评论 -
Fiddler-使用教程
Fiddler-使用教程最近遇到比较多的网络请求,在测试的时候经常听到抓包、抓包。对未知知识的好奇心驱使下,了解了Fiddler(小提琴)抓包。其实抓包还有很多,简单对比介绍下:Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。Wireshark是通用的抓包...原创 2020-04-16 17:11:35 · 5418 阅读 · 0 评论 -
360悬浮加速小火箭,内存清理,加速缓存
最近时间都比较的紧,处理不同项目的BUG,今天偷得半日闲,把剩下项目的一部分扔给了组长。有个问题没解决,做了两天也没完成,实在是没有办法了。也很感谢,旅行途中遇到很多有趣的人,希望他们越来越顺利。废话少说,接入今天的主题。需求文档1、在主界面 显示 一个悬浮图标或者入口,点击后展示如下界面,直接开始清理,清理完成后,弹个toast提示(已清理多少空间),就退出界面了2、【手机加速】一键加...原创 2020-04-15 17:31:09 · 3193 阅读 · 0 评论 -
常用的几种视频格式(最详细的解释)
刚好最近在做视频播放的需求,正好补充了一些关于视频的储备知识和大家分享。视频格式视频格式:AVI、WMV、MPEG、QuickTime、RealVideo、Flash、Mpeg-4,不同的格式有不同的特点。AVI:文件名以“.avi”结尾。AVI是英文Audio Video Interleave的缩写,该格式由微软开发。在所有Windows系统都能运行这种格式。WMV: 文件名以“.wm...原创 2020-02-25 14:54:30 · 16082 阅读 · 0 评论 -
关于架构设计之Java的观察者模式(结合代码解释)
很多时候都需要需要写一个观察者模式,public class Observable extends Object{},l类似这样的一个观察者对象,表示我们想要观察的对象Obeservable,一个对象就可以有一个或者多个观察者,观察者可以实现Observable接口的任意对象,当Observable实例改变之后,程序里调用了Observable的notifyObservable方法的程序,通过调用...原创 2020-02-25 14:53:12 · 314 阅读 · 0 评论 -
android中简单视频播放器demo(附githup下载源码)
简单视频播放器demo(免费,赞)介绍githup上的下载路径为:https://github.com/wenfujing/video_svg,下载最新的库文件,并且导入到项目的LIB下便可以使用。该库以及DEMO本地下载链接:下载地址知识储备Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和...原创 2020-01-17 16:03:01 · 2671 阅读 · 0 评论