10 川峰

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 2w+

Git忽略已经提交的文件

执行命令:git rm --cached .idea/gradle.xml,然后提交即可。如果报错,可尝试加上-f, git rm --cached -f .idea/gradle.xml注意,已经提交到Git服务器的文件,即便你更新了.gitignore文件,下次提交也是不会被忽略的,这个文件只针对尚未被提交的文件进行忽略起作用。详细参考:https://segmentfault.com/...

2020-02-25 18:57:17

Android 10 出现"此应用专为旧版Android打造,因此可能无法正常运行。请尝试检查更新或与开发者联系"

在Android P(9.0)出现此弹窗,多数建议为`targetSdk > 17, minSdk> 17`, 最近测试反应在Android 10上也出现该弹窗,经测试targetSdk > 17时能够安装,但是会有弹窗提示,要去掉这个弹窗需要修改`targetSdk >= 23`即可, 但是修改23的话要记得加动态权限申请。出现此弹窗的关键代码是AppWarnings...

2020-02-24 17:48:25

Android常用adb命令

官方参考地址:https://developer.android.com/studio/command-line/adb.html?hl=zh-cn (可能需要翻墙,可以使用在线代理访问)基本命令:查看连接的设备 adb devices进入指定设备 adb -s serialNumber shell连接状态 adb get-state查看版本 adb version启动ADB服务 ad...

2018-11-26 10:14:01

关于模块化的一些思考/记录

我这里所说的“模块化”可能是更加广义的理解概念,不限于具体的实现方式;通常模块化的目的是为了使得项目更加方便的管理,易于维护,这对于多人团队共同开发同一个项目或者项目业务体积日趋庞大的情况尤为重要。这里只是我对模块化的思考做一些随笔记录,并不是具体指导教程,如有想法欢迎交流。物理隔离所谓的物理隔离也就是代码文件的隔离,我认为这是实现模块化的第一首要任务,即保证你的代码文件相互分隔开来,一方面从...

2020-01-30 22:01:40

Android MVP模式深入实践探索(二)

上一篇总结了MVP模式的基础结构,这一篇主要总结在MVP模式中该如何进行分类,即哪些属于View层,哪些该放在Presenter层,哪些该放在Modle层,如何从一堆杂乱的UI代码中将相关代码提取到MVP对应的层次当中。先从View层说起,对于View层其实是最好划分的,首先想到的是Activity、Fragment、Dialog等系统的组件,还有加载我们的布局文件,进行findView操作,对...

2019-07-04 21:47:42

Android MVP模式深入实践探索(一)

其实MVP已经不算新东西了,写这篇文章的目的主要是为了把之前在项目重构中应用的MVP模式做一个整理、总结和记录,把实践代码做成一个可描述可理解的过程。一篇可能写不完,总共打算分几篇来记录,这将包括且不限于以下内容:MVP模式基础结构介绍MVP模式中如何分类,哪些属于View层,哪些该放在Presenter层,哪些该放在Modle层MVP模式中关于View层使用的数据类MVP模式中Vie...

2019-06-28 19:25:09

Android Studio中资源文件夹的模块化配置

有时app中res下面的文件太多了想分一下类,如所有的布局文件都在layout文件夹下面,太多的话找起来不方便。一开始我想这个问题大概可以通过配置productFlavor来实现,但是productFlavor中不同的Flavor是互斥的,跟这个还不太一样的。下面是网上学来的分类分法,这里记录一下:第一种分法:gradle配置: sourceSets { main {...

2019-06-27 20:43:40

Android 7.0 AES加密报错:NoSuchProviderException: no such provider: Crypto

最近项目中遇到手机密码不能登录的问题,在别的地方看到了的解决方法,这里记录一下报错代码:调用SecureRandom.getInstance就会抛出异常:NoSuchProviderException: no such provider: Crypto,原来CryptoProvider在7.0以上不存在了解决代码:还要在项目中手动添加一个CryptoProvider类:public ...

2019-06-27 19:45:07

Android Studio tools:replace的使用

一般是项目中使用的第三方依赖库中的AndroidManifest.xml中跟当前app的AndroidManifest.xml中有重复的某些属性时AS会提示这个,其实你按照他的提示添加就可以解决了,这里只是记录一下。如三方的依赖中application标签添加了android:theme, android:label可以在当前app中添加:<application and...

2019-06-27 19:29:52

Android Studio编译错误:Error while generating the main dex list

这个错误一般提示如下:FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:transformClassesWithMultidexlistForInstant_runDebug'.> com.android.build.api.transform.Tran...

2019-06-27 19:17:34

Android Studio使用Git提交、分支、切换、合并

首先到Git托管平台上创建一个空的项目,公司使用的Git托管平台是GitLab,所以先到GitLab上面创建一个项目:点击右上角的加号按钮,打开创建页面,输入项目名称、描述、选择项目的路径,点击create,会创建一个新的空项目出来, 在GitLab上面进入刚创建的项目查看,可以看到GitLab为我们列出了常用的Git命令:由于是首次创建项目是空的,所以我们本地先提交一个工程代码上去先找...

2019-06-27 00:11:31

一些提高Android开发效率的工具&方法

一些提高开发效率的工具&方法1. 使用快捷键提高操作效率下面的有些快捷键是经过我修改的,如果你不知道AS原生的快捷键是什么或者忘记了快捷键可以到Settings->Keymap下面搜索查看,使用熟练了之后就会记住了。当然你也可以在Settings->Keymap中修改自己觉得顺手的快捷键组合。快捷键作用对应菜单路径Ctrl + F当前文件查找内容...

2019-06-20 18:25:00

EventBus源码学习

在进入主题之前,我们先保持着这样几个疑问,EventBus的使用三要素里,我们为什么要去定义事件方法,并且用到了@subscribe()注解? EventBus.getDefault().register(Object)这行代码到底干了什么?发送事件的时候又做了哪些操作?为什么要在onDestory()做解除绑定的操作…等等(一) 注册: EventBus.getDefault().regist...

2019-06-11 19:39:36

EventBus使用详解

EventBus是一个基于发布者/订阅者模式的事件总线框架。发布者/订阅者模式,也就是观察者模式(定义了对象之间的一种一对多的依赖关系,当一个对象状态发生改变时,它的所有依赖者都会收到通知并自动更新)。在EventBus中,当发布者发布事件时,所有订阅该事件的事件处理方法将被调用。EventBus的优点:解耦和简化Activities, Fragments等组件以及后台线程之间的通信,分...

2019-06-03 20:41:17

RxJava背压

RxJava背压主要用来解决异步订阅关系中,被观察者发送事件的速度与观察者接收事件的速度不匹配的问题。大多数情况下,由于被观察者发送事件速度太快,而观察者来不及响应处理所有事件,从而导致事件丢失、OOM等异常。RxJava 2.0中对背压的支持主要是通过Flowable类来实现的,Flowable其实就是被观察者(Observable)的一种新实现,用来解决RxJava 1.0中无法解决的背压...

2019-05-29 08:55:36

RxJava操作符

文章目录RxJava创建型操作符create()操作符just()操作符fromArray()操作符fromIterable()操作符differ()操作符timer()操作符interval()操作符intervalRange()操作符range()操作符rangeLong()操作符其他RxJava变换操作符map()操作符flatMap()操作符concatMap()操作符buffer()操作...

2019-05-15 08:50:46

Android应用被后台杀死后如何重新走闪屏逻辑

Android应用运行在后台的时候,经常被系统的LowMemoryKiller杀掉,当用户再次点击icon或者从最近的任务列表启动的时候,进程会被重建,并且恢复被杀之前的现场。什么意思呢?假如APP在被杀之前的Activity堆栈是这样的,A<B<C,C位于最上层APP被后台杀死后,APP端进程被销毁了,也就不存在什么Activity了,也就没有什么Activity堆栈,...

2019-05-07 20:39:07

解决Android Studio无法查看API 27的源码

解决方法Step1.下载源码通过 SDK Manager 可以查看和下载源码包。Android Studio 会根据 compileSdkVersion 的值去加载对应版本的源码包。所以,源码包选择下载的版本和编译版本 保持一致。imageStep2.关联源码找到 jdk.table.xml,找到源码相应版本的 < sourcePath>标签,把源码路径写进...

2019-05-06 18:35:46

Espresso测试框架的使用

Espresso是Google官方提供的一个Android测试库,是一个AndroidJunit测试库,需要运行到设备或模拟器上进行测试。Espresso是意大利语“咖啡”的意思,它的最大的优势是可以实现UI自动化测试,设计意图是想实现喝咖啡的功夫就完成自动测试。通常我们需要手动点击测试的UI功能,利用这个库可以自动为你实现。添加依赖:dependencies { androidTes...

2019-05-06 17:29:15

Android单元测试框架Robolectric的学习使用

Robolectric普通的AndroidJunit测试需要跑到设备或模拟器上去,需要打包apk运行,而Robolectric通过实现一套能运行的Android代码的JVM,然后在unit test运行的时候去截取android相关的代码调用,然后转到自己实现的代码去执行这个调用的过程。从而达到能够脱离Android环境运行Android测试代码的目的。最新的Robolectric是4.3+...

2019-04-29 16:34:02

查看更多

勋章 我的勋章
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。