android 开发
文章平均质量分 55
岳锋
就国而言,其根本在于富国强兵。就人而论,则在财富健康。国富而兵弱者,必有宋清之祸。财富而体不健者,则无富贵之实。故为士者,当自勉上进,积财累富。又当积极自律,强身健体。卒可立宗祠,留芳名,福荫子孙。
展开
-
Android Studio Dolphin 带来全新的Logcat功能,赶紧来瞧一波!
Logcat,一直是安卓开发所不可或缺的功能之一。通过Locat,我们可以快速定位问题,协助我们分析问题,包括定位崩溃等。在谷歌新发布的Dolphin版本中,Logcat得到了质的提升,让我们一起来学习一下,有哪些新features,来帮助我们提高开发效率。如果你不喜欢默认的格式化排版,可以通过点击小红框处的按钮,选择模式,这个更接近旧版的格式。如果觉得这个也不满足你的要求,可以选择,来自定义排版。原创 2022-10-18 21:05:00 · 2387 阅读 · 1 评论 -
Android 事件分发快速复习篇
事件分发依据自上而下,层层分发的原则。最顶层,最先接收到Touch事件的View是decorView,可以通过window.getDecorView()获取。ViewGroup在进行层层分发的过程中,会依次调用以下三个方法: dispatchTouchEvent->onInterceptTouchEvent->onTouchEvent。如果onInterceptTouchEvent拦截了事件,则会直接调用onTouchEvent。如果onInterceptTouchEvent没有拦截,则会.原创 2021-10-29 17:41:55 · 1339 阅读 · 0 评论 -
Android Studio 编译报错 Java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
解决这个问题,需要了解以下知识点:一、不同的JDK。做为安卓开发程序员,我们一般会给电脑安装java,但是Android Studio也自带了java(OpenJdk)。这样,电脑上就会有两个版本的java。二、不同版本的Android Studio。Android Studio 4.2.0以下的版本,自带的java是1.8.0。Android Studio 4.2.0以上的版本,自带的java是11.0.8。三、问题分析。1、如果你的AS低于4.2.0,出现这种情况的话。点击Android原创 2021-05-06 19:12:34 · 3492 阅读 · 2 评论 -
应用报病毒A.gray.Falseloan。
如果有用360加固,在基础设置里面,把增强服务都去掉,尤其是里面的崩溃日志上报服务。即可解决。原创 2021-04-07 10:41:05 · 6351 阅读 · 1 评论 -
Android如何使用Camera2拍照【简易快速上手篇】
因为大部分的需求,并没有那么复杂,只需要简单的拍照功能,对于这种简单的需求,本文可以很好的满足。本文,是对Camera2做一个极简易的封装,以及去掉其它不重要的API,帮助你在几分钟内,使用Camera2实现拍照功能。其实就是,直接复制粘贴就可以运行了。有什么问题,可以留下评论。MainActivityclass MainActivity : AppCompatActivity() { ...原创 2020-04-22 14:26:18 · 1651 阅读 · 0 评论 -
Android 四大组件之Broadcast【一】
一,什么是广播?广播, 做为Android的四大组件之一,被用于发送和接收,来自系统或其它app的消息。其设计原理,是基于观察者模式来设计的,即先订阅,后接收。广播消息,并不受限于某一个单一进程。因此,它可以用于跨进程间的通信,在多个App之间传递消息。二,广播的分类。根据广播的订阅(定义)方式和生命周期,我们可以将广播归纳为2种类型,即静态广播与动态广播。静态广播静态注册的广播,在A...原创 2020-04-17 11:37:51 · 338 阅读 · 0 评论 -
couldn't find "libc++_shared.so"
Android 项目,运行时遇到这个问题时,删除build文件夹,然后Rebuild项目就行了。原创 2020-04-07 15:58:29 · 4113 阅读 · 0 评论 -
Github login 一直弹(AndroidStudio)
最近,在Github上又创建了一个分支,在push时,老是弹这个login弹窗,配置了AndroidStuiod里面的github账号也没用。后来,根据这篇博文,解决了这个问题。打开git bash客户端,进入用户目录(一般为C:\users\yourUserName),执行以下命令,注意要带上大括号touch .git-credentialsvim .git-credentialsh...原创 2020-03-25 17:38:06 · 2226 阅读 · 1 评论 -
浅析SparseArray的源码实现
Preface:【SparryArray 缩写成 SA】在我们学习一个新技术,新东西之前,我们往往会先考虑到,它是什么?为什么要学它?它有什么优点和缺点?它是如何实现这些优点的?又为什么会有这些缺点?通过了解这些问题,我们才能做出合理的判断,来决定是否要学它,用它,以及何时,何地来用它。这篇博客,将会照着这个思路,来浅析SparryArray。一,What is SparseArray?Sp...原创 2020-03-17 18:12:27 · 767 阅读 · 1 评论 -
Let's talk about the relationship of Androidx, Support, Jetpack.
You may heard AndroidX, Support, Jetpack, but do you know what is the differ between them? Okay, Let me walk you through this topic.First of all, Support is the support library. We use support librar...原创 2020-01-21 16:17:58 · 172 阅读 · 0 评论 -
Java Skeletal Implementation/Abstract Interfaces(骨架实现/抽象接口)
注:skeletal implementation,下文,全部简称SI。一、接口与抽象类的优劣。接口,可以实现多继承,但抽象类不行。抽象类,可以有实现,但接口不行。我们先一步一步来,先举一个,用接口的例子,再通过分析例子,一步一步进行讲解。二、使用接口,规范相同行为。 假设,我们要做一个苹果自动贩卖机(自动贩卖机简称贩卖机)和葡萄贩卖机。那么,良好的代码设计,肯定不是一上来...原创 2018-07-03 20:26:01 · 823 阅读 · 2 评论 -
Android 内存优化策略
本篇博客,主要向你说明,以下两个问题:为什么要内存优化?如何进行内存优化(方法有哪些)?一、为什么要内存优化? 因为Android平台和Java语言本身的某些特性的缘故,在开发过程中,如果不注意这些特性。可能会导致内存消耗,比其它平台(IOS)和开发语言(C/C++)多得多。所以,我们需要最大化的去避免,额外的内存开销和泄露。所以,通过了解这些特性,并合理的组织你的代码,来减少A...原创 2018-07-02 19:15:31 · 1255 阅读 · 0 评论 -
Android 实现防抖动(防快速点击)的最优雅做法
前言:对于很多安卓开发者来说,防快速点击的实现,并不是一件难事。难的是,如何优雅的实现。现在,主流的做法,有自己在onClick方法的顶部加时间判断。也有通过,第三方注解框架去解决。但是,如果你既不想在onClick里面加,又不想用第三方框架,又想以最少的改动,来实现,咋办?干大事的人,都是直接上使用案例的,无Code,无JB。Here is the code shows you How ...原创 2018-05-05 11:29:34 · 13142 阅读 · 11 评论 -
android 颜色码详解
前言: 最近在群里面,经常能遇到一些同学在问,关于颜色码的问题。比如,为什么颜色码是一串字母? 又为什么,有时候是#+6个字母,有时候是#+8个字母。又或者#50FFFFFF,这样怎么不是透明呢?… … 每次都帮大伙回答,总是显得没效率。趁今天,已经把需求做完。赶紧写一篇文章。一、颜色在Android开发中,颜色是用ARGB的格式,来表现。A即alpha,译为透明度。R、G、B,分...原创 2018-04-12 16:41:28 · 953 阅读 · 0 评论 -
unexpected error while parsing input:Invalid ui automator hierarchy file
网上大部分博客,都少说了,第1步,导致解决不了问题…问题: 打开android device monitor提示unexpected error while parsing input:Invalid ui automator hierarchy file.解决步骤:1、Ensure you have no other monitor.exe (if on Windows) or m...原创 2018-03-22 10:41:25 · 2493 阅读 · 2 评论 -
Android 手势拦截的实现(简化水平、垂直手势操作的拦截处理)
这是手势拦截类的源码。注释,也加的随地时,方便阅读理解。在源码后面,会有使用案例。package com.laka.robotdog.widget;import android.content.Context;import android.view.MotionEvent;import android.view.View;import android.view.ViewConfi...原创 2018-03-26 15:07:38 · 3649 阅读 · 0 评论 -
(编译安卓内核并运行在模拟器上)How do you compile android kernel(goldfish) and let it run on emulator?
前言:这是14年,刚出来实习的时候,学的。文章放在QQ空间,但QQ空间现在已经莫落了,把文章转发在这里。官方指导步骤:http://source.android.com/source/building-kernels.html,中国特色互联网下及内核的编译步骤及方法(2014/04/16):Depending on which kernel you want。 //你可以下载,下面,任何...原创 2018-03-24 22:34:34 · 600 阅读 · 0 评论 -
Android Studio 提示Please select android sdk
图文解释这个问题,遇到这个问题,只要配置一下module对应的sdk就行了。这是出错的图片,如果是这样,再照着做就行。 第一步:打开File->Project Structure…第二步:选中,对应的Module,这里是名为demo的Module第三步:选择SDK。最后,点右下角的OK,等build完就可以跑了。...原创 2018-03-05 15:01:05 · 22448 阅读 · 2 评论 -
Smali基本语法(一)
Note that: 需要安卓开发的基础知识.这个课题,将会拆成几篇,向你讲解一些基本的Smali语法。我会先向你展示一些原样的Java代码。再展示反编译后,对应的Smali代码。通过二者的对比,来一 一的进行定义讲解。一、类定义: 我们来看一下,android中最基本的类定义,这里以一个基础的MainActivity为样版。 如图所示,我们可以得出以下这些信息: 1、这是一个公...原创 2018-02-22 14:36:36 · 9882 阅读 · 2 评论 -
Android Studio git添加.gitignore文件无效
在添加.gitignore文件后,Android Studio 如果没有忽略我们想要忽略的文件,解决方法就是清除一下缓存。原因gitignore对已经追踪的文件无效,清除缓存后就可以了。还不行,就从git上重新拉取代码。注意点cached和add后面,需要空格和一个 .git rm -r --cached .git add .git commit -m "clear cached"下面...原创 2018-10-11 18:59:24 · 2994 阅读 · 4 评论 -
Android Studio 每次修改xml后,都要rebuild project才生效
最近入职到另一家新公司,接手了一个项目。可是这个项目很狗血,每次修改xml的内容,都必须要rebuild project一次,才生效。哪怕你只改了一个textSize或者textColor,这就很烦了。在忙完了入职前的一波需求后,今天花了大半天的时间,琢磨了一下整个项目,特别是gradle的配置,在用排除法,一步步排除,并在StackOverFlow的一位大神的帮助下,成功解决了这个问题。首先...原创 2018-10-12 14:41:34 · 13017 阅读 · 8 评论 -
Git通过命令忽略指定文件
进入要忽略的文件的所在目录,点击鼠标右键,选择Git Bash Here,如图所示。以下命令,是忽略指定文件git update-index --assume-unchanged test.txt以下命令,是取消忽略指定文件git update-index --no-assume-unchanged /path/to/file...原创 2019-09-26 14:52:47 · 2920 阅读 · 0 评论 -
Windows下通过adb获取手机当前运行的Activity的名字。
最近在做一个功能,但不知道竞品的实现方式是用两个Activity来实现,还是一个Activity多个Fragment实现。。。因为两个Activity实现,遇到技术难点,所以,我就猜测,他们是用多个Fragment来实现。为了证实这个猜想,我通过adb的方式来实现查询。一、进入Android SDK目录下的platform-tools的目录下,按住shift+鼠标右键,打开cmd窗口。二、进入...原创 2019-05-28 10:06:02 · 1591 阅读 · 0 评论 -
How to compile ss for android on Ubuntu 18.04.2 LTS.
一、IntroductionIn this article, I assume you have learned both How to create a regular app and How to install Ubuntu system(Arbitrary version but it’s better to know about 18.04.2 LTS as this post bas...原创 2019-04-10 09:20:10 · 426 阅读 · 0 评论 -
解决华为推送通知栏点击事件onEvent方法不回调的问题
全世界最坑的就是华为推送的SDK,不管你信不信,反正,我是信了!请注意,在确认照官方文档配置无误后,仍然收不到onEvent回调的,请看这里:这里有两个Receiver(官方文档只有一个,另一个没有给名字,说什么不建议,但不建议,onPushMsg又不会调用,真是狗血!)。第一个用于接收透传、Token。第二个用于接收通知栏的点击事件。为什么这样设计,我看不懂!(xxx 是包名) ...原创 2019-04-09 17:24:27 · 5754 阅读 · 11 评论 -
安卓如何提高打开一个复杂的UI界面的速度?
对于个别UI界面,极其复杂,光是inflate就要消耗上100+毫秒的页面,我们是无法接受并容忍的。那么,解决办法有哪些呢?如何,提高打开速度并优化用户体检呢?一、尽可能的减少布局的层次嵌套,优先使用约束布局。二、如果无法减少布局的层次嵌套,哪怕用约束,还是得有三、四层怎么办?而且,里面的所有UI元素都是必须,且不能少。那么,可以采用,ViewStub延迟加载View。先打开页面,展示load...原创 2019-04-02 14:14:45 · 679 阅读 · 0 评论 -
Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve 'module name'
当你的主app的Module有配置多个buildTypes时,所有被app所引用的Module,以及Module之间,都要添加一样的buildTypes。 比如,我的项目的app有release、debug、realDebug,三个。那么我的其它Module都要添加这个东西。 buildTypes { release { // signingConfi...原创 2019-01-28 13:46:56 · 919 阅读 · 1 评论 -
仿微信新版沉浸式效果,解决状态栏蒙灰,遮罩问题。
代码为Kotlin,但不影响Java开发者阅读。isLight参数,如果为true,就将状态栏的图标和文本设置成黑色。为false, 就变成白色。class SystemUtil { companion object { /** * @param isLight if true, set icons and text color to blac...原创 2019-01-15 14:22:32 · 1539 阅读 · 1 评论 -
Android Studio 导入aar报红(报错),引用不到,但可以编译运行。
昨天遇到一个比较狗血的问题,应该是AS的一个潜在BUG。我从git拉下的新项目,可以正常编译和运行,但是引用到aar部分的代码,却报红,提示找不到对应的类。。。折腾了半天,后来,修改一下aar对应的module的名字,然后sync now一下(这个时候就已经好了,但为了不影响现有代码的命名,还需要下一步)。然后,再改回原来的名字,再sync now一下,就行了。注:这中间,会提示你,是要修改文件...原创 2018-09-29 09:33:40 · 4480 阅读 · 0 评论 -
Analyzing the source of OkHttp (一)
Note: Since OkHttp is a big framework, Therefore I will separately discuss and walk you through it. Before analyzing the source of OkHttp, I will show you what advantages does OkHttp provide and That...原创 2018-01-20 14:30:22 · 459 阅读 · 0 评论 -
Android APP杀不死(最大存活方法)
前言: 有很多APP和需求,需要让APP不被系统杀死。然而,我在这里,必须明确的跟各位安卓开发者说的就是,这个需求就跟让物理学家发明永动机一样,是不可行的。然而,我们却可以尽最大的可能性让APP存活下来。实现最大存活有多种方式,网上的各位大牛,也有列出方法,我也想在这里,系统的总结一下。但暂时没能一下就全列出来,后面,想到哪个就再补上来,或者如果您有好的建议,直接在评论处给个建议,我会将您的建议...原创 2017-02-23 12:38:01 · 6970 阅读 · 7 评论 -
This support library should not use a different version(x)than the compileSdkVersion(y)
转载请注明来源李岳锋的博客1、com.android.support:recyclerview-v7:x.x.x 2、com.android.support:recyclerview-v7:x.x.x 3、com.android.support:support-v4:x.x.x 4、com.android.support:support-v7:x.x.x …. 在导入这些包之后,报了这个错原创 2017-02-23 17:40:50 · 5253 阅读 · 0 评论 -
开源项目大全
一、工具类 1、图片加载工具 (ImageLoader)https://github.com/nostra13/Android-Universal-Image-Loader 2、数据库操作工具 (GreenDao)https://github.com/greenrobot/greenDAO 二、常见的美化版UI控件 https://github.com/wasabeef/awesome-原创 2016-11-01 15:04:45 · 683 阅读 · 0 评论 -
Android Studio运行时finished with non-zero exit value 1 或:app:transformClassesWithDexForNduoDebug
三种解决方法:(一个一个试)1、在项目的build.gradle里的android { ... }标签的大括号内,添加代码:dexOptions { preDexLibraries = false javaMaxHeapSize "4g" }2、打开任务管理器,杀死java.exe,再运行。3、Clean Proje原创 2016-07-18 21:30:42 · 948 阅读 · 2 评论 -
HttpURLConnection 上传图片(文件)到服务器
注:安卓上传图片跟文件的本质就是post请求而已,只是在post请求的数据中,插入文件的数据(这个用FileinputStream转成流,来插到post请求的数据中)。而图片跟文件对FileinputStream来说,都是文件,所以,需要在payLoad那里,设置上传文件的格式(具体怎么搞,可以跟后台协议一下)! 在这个例子里,我仅需上传.jpg图片,就这样写了,改成.txt之类的,例子里有说明。原创 2016-07-27 18:38:59 · 13641 阅读 · 5 评论 -
android 接入高德地图或其它第三方SDK,需要注意的点!
如果提示key鉴定失败[IO 异常],请务必确保没有使用代理 。。在使用代理的情况下,坑B的高德会返回key鉴定失败。原创 2016-06-02 17:52:28 · 1908 阅读 · 0 评论 -
Android Studio 的.9图编译失败,可以用这个来忽略检查。
aaptOptions.cruncherEnabled = falseaaptOptions.useNewCruncher = false原创 2016-05-03 11:53:45 · 1238 阅读 · 0 评论 -
关于安卓个别手机拍照回来后或到其它页面选择回来后,数据被清空的BUG。
最近博主,被这问题折腾的要命,这拍个照回来,为啥数据会被清空?一开始,以为是内存或ROM定制的缘故,导致Activity被杀死,然后,采用onSaveInstance来保存数据,然后,在onReXXXX方法里恢复数据。然而,测试又指出一个BUG,说他先在A页面,跳到B页面选择数据回来,在A页面展示B页面的数据完成后,再从A页面,跳到C页面选择数据回来,结果,之前从B页面选择原创 2016-04-29 12:00:10 · 1324 阅读 · 0 评论 -
Android Studio更换现名图片导致编译失败
出现这种情况的时候,直接Clean一下项目就好了。原创 2016-04-25 19:15:29 · 738 阅读 · 0 评论 -
Android Studio运行时finished with non-zero exit value 2或:app:transformClassesWithDexForDebug
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.inter原创 2016-03-31 15:08:49 · 1026 阅读 · 0 评论