迅速查看Gradle 查看包的依赖关系,解决冲突,或者找到不必要的包依赖

android开发
-
android 如何查看包被那个包依赖
-
react native 集成高德地图 tagged-pointers 后退闪退
记录一次react native集成高德地图闪退的问题,一个小问题解决废了 老鼻子劲了,解决方案添加android:allowNativeHeapPointerTagging="false"
-
Android 11 adb无线调试使用方法
Android 11无线调试不需要再像以前一样,先插上usb线,输入命令来启用无线调试,再进行无线连接了。Android 11系统设置开发者选项中自带了无线调试,今天亲自测试了
-
android toolbar setTitle 出现省略号
怎么配置都不行,后来我用了异步设置 ,在线程中设置title,完美解决了。
-
Xposed could not load available ZIP files
Xposed could not load available ZIP files
-
android debug速度特别慢有时候卡住
一直提示定在 Starting LLDB server。可能的原因是 Android Studio编译速度太慢了,就会一直卡在Starting LLDB server。可以通过设置 Run/Debug Configurations ——> Debugger ——> Debug type 为 Java 跳过 C/C++的调试,起码实现对 Java 程序的调试
-
Android IO简化之Okio库
如果之前有使用过Okhttp,那么你一定知道底层的IO读取是由square公司开发的Okio库。它补充了Java.io和java.nio的不足,以便能够更加方便,快速的访问、存储和处理你的数据。而在一般的开发中,我们也可以使用Okio来做IO读写,非常方便深得我心
-
通过glide获取图片显示后的真正宽高
有时候需要获取网络图片的宽高来设置图片显示的大小,很多人会直接利用Glide的加载监听去拿图片的宽高,但是这样拿到的不是图片真正的宽高,而是图片显示在ImageView后的宽高。如下:
-
Android View的坐标和屏幕高度 getY getX getLett getTop
View.getX()和View.getY()获取到的值为相对于父视图而言的两个左边缘和上边缘的距离。我们需要其他方法获得距离手机顶端的坐标
-
NDK--CMakeLists配置第三方so库
当我们创建一个NDK工程时,会自动创建一个CMakeLists.txt的文件,在AS中c++的编译器是使用LLVM,规则为cmake,今天来学习下cmake的基本套路 首先,我创建了两个NDK工程,第一个工程为lib,为第二个工程提供so库
-
libc++_shared是什么冲突
NDK 支持多种 C++ 运行时库。本文档介绍了这些库的相关信息、所涉及的折衷做法以及库的使用方法。
-
android studio 导出jar和so包
jar包只有设置library属性才会出现
-
mp3解码器转PCM合并
首先,为了混合两个音频文件,您需要操纵它们的原始表示;由于MP3文件被压缩,您无法直接访问信号的原始表示.您需要对压缩的MP3流进行解码,以便“理解”您的音频信号的波形,然后可以混合使用.
-
android从byte[]字节数组中播放mp3音乐
android从byte[]字节数组中播放mp3音乐
-
音频播放AudioTrack之入门篇
AudioTrack是管理和播放单一音频资源的类。AudioTrack仅仅能播放已经解码的PCM流,用于PCM音频流的回放。
-
ERROR:ABIs [armeabi] are not supported for platform.Supported ABIs are [arm64-v8a, armeabi-v7的完美解决方案
ERROR: ABIs [armeabi] are not supported for platform. Supported ABIs are [arm64-v8a, armeabi-v7a, x86, x86_64].
-
Android TTS系列三—Android speech包源码剖析
Android speech包源码剖析
-
Android TTS系列二—如何开发一款系统级tts引擎?
如何开发一款系统级tts引擎?
-
Android TTS系列一如何让app具备tts能力
018年曾对tts做了比较多的研究,这几天,就想把之前的笔记再好好整理一番,写成博客分享给更多的开发者。
-
Android视频点播-边播边缓存
一些知名的视频app客户端(优酷,爱奇艺)播放视频的时候都有一些缓存进度(二级进度缓存),qq,微信有关的小视频,还有一些短视频app,都有边播边缓的处理。还有就是当文件缓存完毕了再次播放的话就不再请求网络了直接播放本地文件了。既节省了流程又提高了加载速度。 今天我们就是来研究讨论实现这个边播边缓存的框架,因为它不和任何的业务逻辑耦合。
-
Create a proxy server in android to intercept media player request and response
I am trying to extract ID3 tags from live streams on an android device. Extraction of ID3 tags from live streams in not available in android by default.
-
基于本地代理的边下边播技术分析
我们熟知的边下边播技术,是迅雷提供的,还有之前的快播、快车等工具,它们使用的技术基本上都是P2P下载技术。 P2P下载技术,本质上它并不是C-S的架构,P2P----> Peer to Peer,实际上它将各个客户端的资源调度起来,给上传资源种子,方便后续的下载者可以快速有效的下载资源,这种方式需要服务器整合各个Client,在有用户需要下载的情况下,服务器能及时调度资源,开始给下载者提供资源信息,保证下载者下载资源越快越好。P2P的下载方式后面我们专门介绍一下。这儿不继续展开了。
-
WebRTC 实现Android点到点互连(含Demo)
WebRTC被誉为是web长期开源开发的一个新启元,是近年来web开发的最重要创新。WebRTC允许Web开发者在其web应用中添加视频聊天或者点对点数据传输,不需要复杂的代码或者昂贵的配置。目前支持Chrome、Firefox和Opera,后续会支持更多的浏览器,它有能力达到数十亿的设备。
-
android设置禁止横屏失效崩溃
误区,其实这两个代码都不是禁止横屏的,可以说根本没有禁止横屏的代码,这两个代码是设置竖屏的。 并且安卓先检测xml代码,如果是竖屏就直接展示竖屏的,但是如果java代码中设置的横屏,他会先展示竖屏咱展示横屏的 。
-
Dagger2与AndroidInjector详解
相信使用过Dagger开发Android应用的小伙伴会知道(如果你还不是很了解Daager,可以先看我之前的一篇基本介绍:Dagger2使用攻略),我们会在Activity或Fragment的生命周期方法中执行成员注入。比如这样:
-
dagger学习教程
dagger android 学习(一):dagger基础使用 dagger android 学习(二):AndroidInjector的使用 dagger android 学习(三):ContributesAndroidInjector的进一步优化 dagger android 学习(四):基于dagger2的mvp架构
-
Dagger2源码解析inject过程
添加inject后,通过编译生成的DaggerMainComponent类来导入,说明编译以后生成了一些类,那到底生成了什么类呢。 Module和Component又是什么,该怎么里理解 在这篇文章后里将一一讨论。
-
Android开发从Dagger2迁移至Kodein的感受
最近个人在尝试构建 Kotlin版本 的Android MVVM开发框架,在依赖注入框架的选型上,我最终选择了 Kodein 。这是一个非常轻量级的DI框架,相比于配置繁琐的Dagger(繁琐的配置也是导致Dagger学习成本一直居高不下的原因!),它的配置过程更清晰且简单,并且,这个库的源码也是 Kotlin 的。
-
Dagger 2 在 Android 上的用法
在前面的文章我们介绍了Dagger2 中的大部分注解的使用,接下来我们从源码角度分析下第一篇文章中例子的原理。
-
Android组件 LiveData与MutableLiveData教程
LiveData与ViewMode是经常搭配在一起使用的,但是为了不太混乱,我还是拆分开来说明,此篇博客只讲解 LiveData 与 MutableLiveData的概念与使用方式(但是会涉及到ViewMode的部分代码).
-
Android数据存储之DataBase的Room
Room是Google在AndroidX中提供的一个ORM(Object Relational Mapping,对象关系映射)库。它是在SQLite上提供的一个抽象层,可以使用SQLite的全部功能,同时可以更好更便捷流畅地访问数据库。(关于AndroidX可以参考
-
androidx中的lifecycle组件
Lifecycle-aware components生命周期感知组件执行操作,以响应另一个组件生命周期状态的更改,例如Activity和Fragment。这些组件可以帮助您生成更有组织、更容易维护的轻量级代码。
-
Android LiveData Transformations
有时候有这样的需求,需要在LiveData将变化的数据通知给观察者前,改变数据的类型;或者是返回一个不一样的LiveData。
-
Part 3:The dagger.android Missing Documentation, Fragments
As we all know, it would be Very Bad to attempt to perform constructor injection on a Fragment.
-
How to use Android Injector for Activity and Fragment objects through New Dagger 2 (with Kotlin)
i added kapt instead of annotationProcessor for kotlin. we dont need to keep annotationProcessor dependency. Also we have to add kotlin-plugin in gradle.
-
Dependency Injection with Dagger2,Fragment
標註@Provides的method若有parameter的話,Dagger會找出其擁有的該型態物件來使用。我們在Module內新增了DataModel將其列入Dagger的管理下,接著在provideFactory()增加parameter變成provideFactory(DataModel dataModel),Dagger就會找出其管理的DataModel給provideFactory使用。
-
dagger.android--Fragment,BaseFragment
1 使用Fragment参数来代替Activity参数 2 使用 @FragmentKey来代替@ActivityKey 3 使用HasFragmentInjector来代替@HasActivityInjector 4 AndroidInjection.inject(Fragment)方法,在Fragment的onAttach()中调用,而不是在onCreate()中 5 Fragment的Module添加位置,和Activity是不同的,它取决于Fragment需要的其他依赖注入
-
Dagger2使用详解
简单的说,就是一个工厂模式,由Dagger负责创建工厂,帮忙生产instance。遵从Java规范JSR 330,可以使用这些注解。现在不研究Dagger2是如何根据注解去生成工厂的,先来看看工厂是什么东西,理解为什么可以实现了DI(Dependency Injection),如何创建IoC(Inverse of Control)容器。
-
Dagger2之Kotlin写法
修饰构造方法 修饰变量,在宿主类里,引入要注入的实例
-
Kotlin Sealed class类详解
Sealed class(密封类) 是一个有特定数量子类的类,看上去和枚举有点类似,所不同的是,在枚举中,我们每个类型只有一个对象(实例);而在密封类中,同一个类可以拥有几个对象。
-
当你写爬虫抓不到APP请求包的时候该怎么办?
提示:因为高级篇以后的APP将无法使用很通用的方式处理,每种类型甚至是每个APP的反抓包处理方式都会有差别,所以这个系列以后会以【高级篇-具体类型】的形式来写。
-
app抓不到包,解决很简单
1.手机安装virtualXpost 并激活xpost 框架,如有问题自行百度。 2.安装justTrustMe,然后再virtualXpost中添加此模块 3.安装手机抓包神器packet capture 4.在virtualXpost中运行app,并打开packet capture抓包就行
-
app抓包无数据
我们经常在wifi设置中 设置代理到我们的pc http代理软件上,多数情况下,此时我们开启的app流量都可以在代理软件上看到,比如charles , fiddler等等。 但是细心的人会发现 某些大厂的app 某些请求 在这些 http代理软件上就是抓不到, 给人的感觉就是 流量没从代理软件走一样。
-
Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Message
1.?:在非空的情况下执行语句,为空时直接返回null 1.!!:表示忽略语言的判空检查,即允许程序报NullPointerException(在kotlin中一般不建议这种写法,除非使用处一定不为空)
-
kotlinx.android.synthetic.** 用法与总结
可以直接使用layout id 名称获取当前view对象,详细使用如下:
-
Android Project 检查依赖库和插件版本
studio依赖 - 如何在Android Studio中显示依赖关系树?
-
Kotlin教程大全
Kotlin教程中文英文demo
-
android WebView 注入js 几种方式
有时我们开发中需要将js 注入到我们本地,有可能你会说,放在Web不就可以了吗,的确,但是需求就是这样的
-
abd wifi 无线调试连接两台设备
首先,手机连接电脑,手机和电脑连接同一个wifi,打开终端输入
-
Android 无线调试手机(WiFi 调试)
手机需要开启 USB 调试 手机和电脑要在同一个局域网(连接同一个 WiFi) adb connect 连接成功后要拔出 USB 线,不然出现同时连接两个设备的问题 执行命令 ”adb tcpip 6666“ 后可能需要重新开启 USB 调试
-
mac下全局配置adb环境
不提示“command not found”,而是出现一长串帮助说明,那就证明adb已经配置好了。
-
Could not find method google() for arguments [] on repository container.
1、打开项目根目录下android/gradle/wrapper/gradle-wrapper.properties 将distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip中的2.14.1改成4.1 ———————————————— 版权声明:本文为CSDN博主「peachesTao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/taoerchun/article/details/93870941
-
Mac-AndroidStudio proxy错误:You have JVM property "https.proxyHost" set to .... This may lea
JAVA_OPTS="$JAVA_OPTS -DsocksProxtPort",JAVA_OPTS="$JAVA_OPTS -DsocksProxtPort" AS File->invalitDate caches/restart
-
Android使用AttributeSet自定义控件的方法
我们可以在attrs.xml中声明自己控件的属性,在布局xml文档中声明自己的命名空间,这时就可以对设置自己想要的值了,然后在AttributeSet这个属性中获取对应的值。好了不多说,我们来看下代码,一切尽在不言中:
-
android 自定义组件,使用AttributeSet
首先要在res/values目录下建立一个attrs.xml(名字可以自己定义)的文件,并在此文件中增加对控件的属性的定义.其xml文件如下所示:
-
Android UI封装,组件封装
Android,UI封装,组件
-
Android卡片布局(圆角阴影)的几种实现及分析
在开发中,为了界面美观,圆角view和阴影效果是开发中经常遇到的UI场景,比如银行卡效果,卡片式itemView布局,Banner图等,开发中我们通过各种方式实现了这种效果,但是哪种方案最好呢,接下来本文将比较几种常见的圆角阴影布局实现,并从内存占用角度分析它们的优缺点.
-
推荐Android两种屏幕适配方案
在Android开发中,由于Android碎片化严重,屏幕分辨率千奇百怪,而想要在各种分辨率的设备上显示基本一致的效果,适配成本越来越高。虽然Android官方提供了dp单位来适配,但其在各种奇怪分辨率下表现却不尽如人意,因此下面探索一种简单且低侵入的适配方式。本文将推荐两种屏幕适配方案,大家可以根据实际情况使用。
-
发布 Github 项目到 JCenter教程
如何发布开源包,在github上
-
java.util.zip.ZipException: zip file is empty
三、总结 出现 java.util.zip.ZipException: zip file is empty错误,表示你本地使用的jar包或者aar包可能为空,你可以检查下文件大小,如果为空,可以替换本地的jar包或者aar包为正常的jar包或者aar包,或者如果官方有相关的资源的话直接使用官方的依赖资源即可。
-
Mac设置ADB
adb在 ~/Library/Android/sdk/platform-tools文件夹内
-
聊聊真实的 Android TV 开发技术栈
智能电视越来越普及了,华为说四月发布智能电视跳票了,一加也说今后要布局智能电视,在智能电视方向,小米已经算是先驱了。但是还有不少开发把智能电视简单的理解成手机屏幕的放大,其实这两者并不一样。
-
一步一步学习Android TV/盒子开发(一)
本人做了几年的机顶盒和Android电视上的应用开发,写这些文章只是为了让初次接触大屏开发的同学能够快速上手。
-
android TV 开发的几个链接
android TV 开发的几个链接
-
安卓Tv端App开发与手机端的开发的区别
因为大部分电视机的配置一般都比手机低,但是电视机一般都是用来看视频的,所以在做视频解码的时候,因为电视机配置比较低,所以大多数手机运行流畅的播放器在电视机上面都会卡顿,或者出现一些其他的问题,经过我同事长时间的测试,认为百度播放器跟小米播放器比较适合电视机作为播放器开发使用。如果你们要选择一个播放器,要先拿一个demo去很多台不同类型的电视机去测试,因为网络上面的播放器在电视机卡的真的很多,先测试好了再使用可以节约大家的时间。
-
Android TV 包安装成功后找不到启动图标
生成APK文件,用U盘插入到小米盒子上,然后点击安装,提示安装成功。 可是找不到启动图标,安装成功的弹窗也没有打开的选项。 而我之前测试装的一款手机应用是可以找到启动图标的。
-
git中submodule子模块的添加、使用和删除
执行成功后,git status会看到项目中修改了.gitmodules,并增加了一个新文件(为刚刚添加的路径) git diff --cached查看修改内容可以看到增加了子模块,并且新文件下为子模块的提交hash摘要 git commit提交即完成子模块的添加
-
一直卡在indexing paused due to batch update问题的解决办法
遇到这样的问题,一般是在下载最新的gradle,没啥可说的,翻墙吧,或者你给他下好,别让他在下了。
-
Github C/C++及Android App相关开源项目(精品收藏)
分享 GitHub 上有趣、入门级的开源项目,专注分享 GitHub 最新的优质开源项目
-
android检测返回键onBackPressed和onKeyDown区别
onBackPressed()提供的功能有限,它这是在退出之前通知onBackPressed()方法,并不能改变用户原来的行为 利用onKeyDown方法,就可以实现
-
Android 代码操控手机粘贴板(复制到/获取)
Android 代码操控手机粘贴板 以下方法皆为工具方法,直接复制可用
-
Android-应用被作为第三方浏览器打开
微信里的文章页面,可以选择“在浏览器打开”。现在很多应用都内嵌了WebView,那是否可以使自己的应用作为第三方浏览器打开此文章呢?
-
基于VCamera,仿微信录制短视频
vcamera.so这个确实挺好用,可定制性也挺高,但是确定也不小,需要引入的这个so包,10M啊。对于安装包苛刻的用户,这是致命啊。 我现在是抛弃他了。但是在这里还是记录一下用法吧。防止以后再用他。
-
You must call removeView() on the child's parent first解决办法
出现这样的情况最多是发生在recyclerView中,holder复用的过程中,多次添加view,第一次添加的时候view有了父类了,可能就是复用引起的。 我是发生在给recyclerView添加广告view的时候发生的。
-
关于Jsoup 伪装请求头
android爬虫工具,Jsoup。如何设置伪请求头部?
-
android.os.NetworkOnMainThreadException
在Android 4.0以上,网络连接不能放在主线程上,不然就会报错android.os.NetworkOnMainThreadException。但是4.0下版本可以不会报错。
-
java.lang.IllegalArgumentException: View=DecorView@4b56afc[] not attached to window manager
使用Dialog的时候,没少出现下面这个报错 出现的原因:因为你的Dialog的生命周期比你的activity的生命周期要长 所以,出现这个bug的时候,请检查创建这个Dialog的context所属的Activity是不是已经结束了,而dialog还在显示。
-
AssetManager.finalize() Timed Out 解决办法以及分析
在我们的项目崩溃中,有一个比较常见的bug,就是 java.util.concurrent.TimeoutException android.content.res.AssetManager.finalize() timed out after 10 seconds 意思简单明了,就是说在AssetManager析构的时候发生了超时异常。
-
百度视频SDK,突然不能播放
开发过程中,不知道什么时候开始视频不能播发了,怎么办都不行,其他项目没问题,线上都也没有问题,这可急躁完蛋我了,整了仨小时,还是那熊样。 哎。
-
Apache Commons IO之IOUtils优雅操作流
在开发过程中,你肯定遇到过从流中解析数据,或者把数据写入流中,或者输入流转换为输出流,而且最后还要进行流的关闭,原始jdk自带的方法写起来太复杂,还要注意各种异常,如果你为此感到烦恼,那IOUtils可以让我们优雅的操作流。
-
根据byte[]数组,生成相对应的文件并保存指定路径下
我在做视频ts解密的时候,用到了InputStream流转byte[],解密byte[],解密后的byte[],再通过new ByteArrayInputStream(byt)转回到inputStream,再进行文件保存。
-
Android中添加两个(多个)FileProvider节点问题
我们知道在android7.0,修改了对私有存储的限制,导致在获取资源的时候,不能通过Uri.fromFile(..)来获取uri了,但是在写入数据的时候是可以通过Uri.fromFile(..)来获取uri的,android 官网给出的解决办法是通过FileProvider来解决这一问题,我们需要在AndroidManifest.xml 配制provider节点。
-
String和inputstream互转
字符串转inputStream,InputStream转字符串
-
android获取当前运行Activity名字的方法
最近在做IM时需要知道当前Activity是哪一个Activity.自己整理一下两种方法
-
华为手机开发测试不自动关闭开发者模式设置
小编发现好多用户在使用华为手机时,把USB调试打开后总会自动关闭,小编今天针对此问题通过亲自测试之后,找到了原因所在,接下来跟着小编一起来操作吧。
-
华为手机关闭应用检测功能的方法
华为手机关闭应用检测功能的方法
-
Project Setup:reading from cache
Project Setup:reading from cache
-
v4jar包keyeventcompat不存在的错误
KeyEventCompat类被取消了 hasNoModifiers方法已经被KeyEvent实现了
-
spring boot 在Linux下服务启动报错Unable to find Java
将 Spring boot 安装为 Linux 服务启动,后输入 service myapp start 报错 Unable to find Java ,但是使用 java -jar myapp.jar 启动成功。不知道为啥引起的,经过百度找到下面这个解决方法和我的情况一样,终于把问题解决
-
android获取mp4视频文件总时长和视频宽高,MediaMetadataRetriever类、方法以及使用详解
根据该方式获取视频信息可以看出不仅仅可以获取时长和分辨率,还能获取到其他的一些视频信息,不错还是很强大的,不用自己去解析mp4文件了。此demo只是获取的mp4文件,其他的多媒体文件也可以获取到相应信息,比如mp3;
-
android采用FFmpeg实现音频混合与拼接剪切
接触FFmpeg有一段时间了,它是音视频开发的开源库,几乎其他所有播放器、直播平台都基于FFmpeg进行二次开发。本篇文章来总结下采用FFmpeg进行音频处理:音频混合、音频剪切、音频拼接与音频转码。
-
Android support和Androidx库不能共存问题
Android support,Androidx,冲突,转化
-
当ButterKnife8.8.1碰到AndroidX怎么办
The given artifact contains a string literal with a package reference ‘android.support.v4.content’ that cannot be safely rewritten.
-
android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutPara
解决方法:ImageView是LinearLayout的子控件,它的LayoutParams 应该是LinearLayout给他的。所以应该是LinearLayout.LayoutParam 。
-
genymotion免费版
genymotion是一套完整的android虚拟环境工具,相对官方android sdk,它的安装和使用简洁方便不臃肿,但是现在genymotion官方网站不再提供个人的下载,这篇博客记录了如何下载和使用genymotion个人版.
-
腾讯 Android 面试笔试总结
Activity中的几种启动模式 Android消息机制 IntentService 事件分发 Android性能优化、内存优化 内存优化 View的绘制 Eventbus原理 Rxjava的操作符有哪些,说说他们的作用 线程锁 锁方法和类对象啥的有啥区别 AsyncTask原理 说说MVP和MVVM的特点 Android中用到的观察者模式有哪些地方 说说google新出的Lifecycle框架 okhttp原理 Retrofit原理 RecyclerView源码、缓存分析 Binder机制 Android Jetpack Kotlin Activity中的几种启动模式
-
xUtils 里的DbUtils使用心得
使用xUtils做Android数据库开发非常简便和得心应手,而且它本身还支持很多查询功能,比如一对多,select count和自定义sql查询等,并且支持事务(默认关闭) 下面是官方sample给的代码和我的一些使用心得 首先是两个实体类,对应两张表,这两张表中有一对多的关系
-
BUG - xutils3的数据库模块org.xutils.ex.DbException: <init> []
解决这个问题,和类序列化时报错以样的,有了其他的构造方法,就必须填写一个无参的构造方法。
-
Xutils3的更详细的使用
可以参看这个,这个为Xutils3最终版详解
-
xUtils3使用详解
xUtils使用可以参考这个,例子非常详细
-
AndroidStudio 多层级 Module 对 aar 引用问题
有个arr文件被放到Module A中引用,现在Module B又依赖了Module A,则在编译过程中会发生错误,Module B找不到aar文件。
-
php,laravel继承微信和支付宝支付sdk遇到的问题
当然,继承微信和支付宝已经不是一次两次了,最早一次也时四年前的事了。 从来都没觉得简单过,然而这次依然没有摆脱这个噩梦。
-
ALIN10146,ALI38173支付宝APP支付集成时出现的问题
最近在做支付宝APP的集成,遇到了一堆问题。百度不到,ALI64还好点,ALI38173基本上就没了。我也是测试了很久才解决的。ALI64的解决方案是因为要对私钥有问题。ALI38173是签名有问题。签名的解决方...
-
ALIN10146-自查方案
报错原因 1.请求appid应用未上线或者是应用类型是第三方应用 2.签约权限问题 3.签名类型使用错误 4.请求参数问题 5.秘钥匹配问题 6.应用类型问题
-
Android UI布局优化之ViewStub介绍
ViewStub的inflate只能被调用一次,第二次调用会抛出异常,setVisibility可以被调用多次,但不建议这么做(文章中说原因)
-
Android studio 底部的状态栏不见了如何显示
Android studio 底部的状态栏不见了如何显示
-
Android中几种常用的定时器
三种延时的快捷方法。
-
WARNING: API 'variantOutput.getProcessResources()' is
解决办法,更新bugly版本
-
SpringBoot集成MyBatis及使用mybatis-generator-plugin生成代码(完美,步骤巨详细)
该文主要记录SpringBoot集成MyBatis框架,以及如何使用mybatis-generator插件生成pojo、mapper等文件。中间踩坑无数,不过最终经过各种Google后还是搭建起来了,step by step。
-
MyBatis Generator 插件的拓展插件包
应该说使用Mybatis就一定离不开MyBatis Generator这款代码生成插件,而这款插件自身还提供了插件拓展功能用于强化插件本身,官方已经提供了一些拓展插件,本项目的目的也是通过该插件机制来强化Mybatis Generator本身,方便和减少我们平时的代码开发量。
-
ffmpeg错误码
AVERROR_BSF_NOT_FOUND = -1179861752 AVERROR_BUG = -558323010 AVERROR_DECODER_NOT_FOUND = -1128613112 AVERROR_DEMUXER_NOT_FOUND = -1296385272 AVERROR_ENCODER_NOT_FOUND = -1129203192 AVERROR_EOF = -541478725 AVERROR_EXIT = -1414092869 AVERROR_FILTER_NOT_FOUND = -1279870712 AVERROR_INVALIDDATA = -1094995529 AVERROR_MUXER_NOT_FOUND = -1481985528 AVERROR_OPTION_NOT_FOUND = -1414549496 AVERROR_PATCHWELCOME = -1163346256 AVERROR_PROTOCOL_NOT_FOUND = -1330794744 AVERROR_STREAM_NOT_FOUND = -1381258232 AVERROR_BUG2 = -541545794 AVERROR_UNKNOWN = -1313558101
-
夜神模拟器127.0.0.1:62001: 由于目标 计算机积极拒绝,无法连接 解决方法
将AS的adb.exe拷贝至夜神bin目录下,并将adb.exe修改为Nox_adb.exe
-
在Android 中使用FFmpeg命令
到这里就可以运行FFmpeg命令了。一直我也是这样使用,但是我在做这个项目Cut的时候发现连续调用多次FFmpeg命令会报错(在项目需要,先改变分镜头的速度,再合成视频)。 为什么会这样的呢?
-
在Android上使用FFmpeg压缩视频
libavcodec-提供了更加全面的编解码实现的合集 libavformat-提供了更加全面的音视频容器格式的封装和解析以及所支持的协议 libavutil-提供了一些公共函数 libavfilter-提供音视频的过滤器,如视频加水印、音频变声等 libavdevice-提供支持众多设备数据的输入与输出,如读取摄像头数据、屏幕录制 libswresample,libavresample-提供音频的重采样工具 libswscale-提供对视频图像进行色彩转换、缩放以及像素格式转换,如图像的YUV转换 libpostproc-多媒体后处理器
-
CMake入门笔记
Make是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。
-
android编译FFmpeg编译选项的命令详解
FFmpeg 编译选项中文翻译
-
FFmpeg编译错误:arm-linxu-androideabi-gcc is unable to create an executable file
FFmpeg编译错误:arm-linxu-androideabi-gcc is unable to create an executable file
-
Linux下静态库(.a)和动态库(.so) 的生成与使用以及区别
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。 动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
-
DOS文件转换成UNIX文件格式区别以及详解
由windows平台迁移到unix系统下容易引发的问题:Linux执行脚本却提示No such file or directory
-
Android studio 连不上虚拟机,连不上夜神模拟器,kill掉adb进程
Android studio 连不上虚拟机,连不上夜神模拟器,kill掉adb进程
-
Android Studio 点击运行,找不到夜神模拟器的解决办法
Android Studio 点击运行,找不到夜神模拟器的解决办法
-
AES+BASE64加解密详解
AES+BASE64加解密详解
-
byte数组和File,InputStream互转
byte数组和File,InputStream互转
-
android studio的NDK开发报错"This file is not part of the project"
奇怪新加了个cpp文件,但是就是不能被android studio编译,cpp里面的错误当然也不会被检测到。
-
JNI Crash:异常定位与捕获处理
在Android JNI开发中,经常会遇到JNI崩溃的问题,尤其带代码量大,或者嵌入了第三方代码的情况下,很难进行问题定位和处理。本文将介绍两种常见的JNI崩溃处理方法,包括: 每个JNI调用后进行异常检测处理(适用于JNI代码量很小的情况) 捕获系统崩溃的Signal,并进行异常处理(适用于JNI代码量大,难以每句话后面都进行异常检测的情况)
-
Android下openssl编译和使用(二)
CMakeList.txt,openssl,编译
-
Android下openssl编译和使用(一)
项目中需要用到openssl库的AES加密,写下来方便以后查阅。
-
OpenSSL实践-Android下的编译和使用
openssl可以编译成ARM下面的二进制代码(动态库或者静态库),方便APP使用,APP在使用的时候,需要使用JNI来进行调用。
-
Attention! No symbol directories found- please check your native debug configuration
SDK Location 打开发现里面没有指定 android NDK location 目录
-
彻底搞懂Gradle、Gradle Wrapper与Android Plugin for Gradle的区别和联系
Gradle是个构建系统,能够简化你的编译、打包、测试过程。熟悉Java的同学,可以把Gradle类比成Maven。Gradle Wrapper的作用是简化Gradle本身的安装、部署。不同版本的项目可能需要不同版本的Gradle,手工部署的话比较麻烦,而且可能产生冲突,所以需要Gradle Wrapper帮你搞定这些事情。Gradle Wrapper是Gradle项目的一部分。
-
Android Studio 3.5最新特性
Android Studio(以下简称为AS) 3.5正式版终于发布了,从第一个bate版本发布到正式版本,历时三个半月。AS一直以来被开发者吐槽,因此谷歌也放慢了版本的变化,对测试版本进行大力度的优化,提高了稳定性。从3.3版本开始,谷歌启动了名为Project Marble的计划,意为谷歌团队致力于使集成开发环境(IDE)的基本功能和流程变得坚如磐石,同时精炼和完善面向用户的功能。而AS 3.5则是Project Marble主要成果的版本,下面来介绍主要成果。
-
Error:error: unable to remove file: Permission denied
JNI里写的C++增加了函数或修改了,如果此时是Debug模式下,而且还没退出程序,就出现这个Permission denied的提示。解决也很简单:就是退出App即可。如果退出无响应,直接拔usb,重新插上也可以
-
android开发无障碍app
最近做一些为盲人提供服务的APP,还是挺有感触的,感谢手机和互联网的普及,他们的生活比以前丰富了很多。 通过读屏软件,盲人可以操作手机,上网浏览信息。读屏软件的工作原理很简单,就是读出屏幕上按钮、文本的信息。
-
Nginx出现500 Internal Server Error 错误的解决方案
Nginx 500错误(Internal Server Error 内部服务器错误):500错误指的是服务器内部错误,也就是服务器遇到意外情况,而无法履行请求。 在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据测试结果,Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。
-
Tag name should use a unique prefix followed by a colon
意思就是 你的tag 名字要使用 app名:tag 的形式 比如:
-
如何在代码中设置LinearLayout的高度
如何在代码中设置LinearLayout的高度
-
Android RecyclerView嵌套的滑动冲突问题
这是一个简单的recyclerView嵌套recyclerView的demo, 很明显,子布局应该也是可以滑动的才对,但你滑动子布局却是父布局在滑动 这就是滑动冲突
-
Android滑动事件与RecyclerView的item点击事件的冲突
用RecyclerView的addOnItemTouchListener()监听,根据滑动的距离判断是否相应点击事件
-
SeekBar的高度及thumb圆点显示不完全
SeekBar的高度及thumb圆点显示不完全解决办法如下
-
Android Seekbar透明滑动球thumb 不透明的解决办法
在seekbar中添加 android:splitTrack=”false” 即可:
-
Android RecyclerView禁止滑动
在开发时,数组返回数目很少,需求要求不能左右滑动;
-
全屏录制播放控件--Android 开发中关于视频录制和播放的诸多问题处理
1.解决录制后文件较大的问题 2.解决清晰度问题 3.同一控件上实现录制和播放 4.解决VideoView播放时不能全屏问题 5.解决了预览图拉抻的问题 6.自定义播/录组件 连续录制/播放
-
仿抖音系列
最近公司在做个短视频的项目,其中借鉴了很多抖音的设计,其中就有抖音的上下滑切换视频。
-
Android 拍摄(横\竖屏)视频的懒人之路
一般用在多媒体录制上面,当然如果你只是简单的想录制音频,用它最合适不过,不过如果你想更多样化的录制这里推荐《Android MP3录制,波形显示,音频权限兼容与播放》。今天的主题是录制视频,用的还是老式通用的Camera,不是新的camera2(这就尴尬了.....((/- -)/),反正个人秉承能用是王道的做法(懒)。之前也尝试过FFMPEG的录制合成音频,大小和效果也不错,只是有时候的兼容性确实有些问题,最主要还是资料不多,不好改啊 ̄へ ̄(懒)。
-
Android-加速传感器或者OrientationEventListener做横竖屏切换
在播放视频的时候,可能要做横竖屏的切换,但是,用户可以设置自己的手机关掉屏幕旋转,这个时候就需要想其他的办法了,比如:加速传感器或者OrientationEventListener。
-
Program type already present: com.alibaba.android.arouter.routes.ARouter Group
这时候如果我们要配置模块 B 中的类,就不能使用 A 来作为组的路径了,要不然就会报错。在不同的模块中,配置的组路径不能一样,而在同一个模块中,自己的路径不能相同,就是上面 A1 位置不能相同。
-
Android组件化方案
1为什么要项目组件化 2如何组件化 3组件化实施流程
-
利用ARouter实现组件间通信,解决子模块调用主模块问题
组件化开发中我们一般是主模块依赖子模块,这样的话主模块是可以调用子模块的方法和属性来与子模块通信的,但是如果子模块想和主模块之间通信(调用主模块的属性和方法呢?)
-
Android Studio接入ARouter以及简单使用
你可能会说如果我的A module依赖了 B module,那么只要在B里面配置是不是就可以了?绝对不行!无论module之间关系如何,必须要同样配置!包括主项目和library项目!
-
Gradle-如何从 AndroidManifest 中获取值
Gradle-如何从 AndroidManifest 中获取值
-
java(Android)跨Module调用对应类方法需求解决方案
在开发组件化项目中,遇到一个这样的问题,两个不同的Module相互之间没有任何直接依赖关系,现在需求是需要在Module_A中调用Module_B中的某个类的方法,以下为解决此问题的方法;
-
intent-filter的action,category,data匹配规则
我们知道有两种方式来启动Activity,显示调用和隐式调用。当使用隐式调用时,又会涉及到IntentFilter的匹配规则。我确信大多数开发者很少关注隐式调用,因为平时开发中用到大多数是显示调用。例如:用Intent直接打开一个Activity,或者用Intent通过包名等其他信息打开另外一个应用等。而隐式调用则使用的比较少,当然也不是完全不使用。例如:当我们需要打开浏览器访问某个链接时,手机上可能存在多个浏览器,我们也无法拿到某一个浏览器的包名,那么一般情况下我们会写如下代码:
-
Android获取应用程序名称的稳定、可靠、简单方案
获取Android应用程序名称的稳定、可靠、简单方案 在Android开发中,相信绝大多数Android开发者使用的是网络上盛传的这个方法获取应用程序名称的:
-
Unable to resolve dependency for ':timemail@compileOptions/compileClasspath'
Error:Plugin requires 'APK Signature Scheme v2 Enabled' for release.
-
Android 全局Dialog的简单实现
这里所说的全局Dialog是指无论当前应用是处于哪一个页面上,都能够及时弹出Dialog来提示用户一些信息,用户体验不会很好,一般应用于优先级非常高的通知。
-
Android程序Crash时的异常上报
家都知道,android应用不可避免的会发生crash,无论你的程序写的多完美,总是无法完全避免crash的发生,可能是由于android系统底层的bug,也可能是由于不充分的机型适配或者是糟糕的网络状况。当crash发生时,系统会kill掉你的程序,表现就是闪退或者程序已停止运行,这对用户来说是很不友好的,也是开发者所不愿意看到的,更糟糕的是,当用户发生了crash,开发者却无法得知程序为何crash,即便你想去解决这个crash,但是由于你无法知道用户当时的crash信息,所以你也无能为力。是否真的这样呢,其实android中有处理这类问题的方法,请看下面Thread类中的一个方法#setDefaultUncaughtExceptionHandler
-
Android 获取values String
Android 获取values String
-
Android中Action、Category、Data匹配规则
Android 中隐式启动组件的匹配规则主要是根据 Action、Category、Data来匹配。
-
app或者android library调用android library之activity
library中启动app中的activity
-
AndroidStudio 代码全红,但可正常运行解决方法及解决后续代理的问题
点击AndroidStudio菜单File -> Invalidate Caches/Restar… ,在弹出的对话框中点击Invalidate and Restar
-
android RecyclerView嵌套RecyclerView点击事件
RecyclerView嵌套RecyclerView点击事件遇到取值错乱的问题
-
BRVAH+MTRVA,复杂?不存在的
言归正传,这样的一个首页,我们需要做怎么样的基础工作呢?或者说,碰到以后更复杂的页面我们应该怎么做?这里小提示下,不要再用什么类似ScrollView的这种东西了,诶,好像说的有点绝对,尽量不要用,这不是谷歌想要看到的,5.0谷歌推出了RecyclerView,从它的整个设计架构来看,简直就是为这而生的。而RecyclerView的视图是通过Adapter来渲染的。原始的Adapter,让人很蛋疼,重复工作太多,我们应该要有封装的思想,把最需要的部分提供出来,其它不用管。
-
Android获取系统字体倍数
Android获取系统字体倍数
-
Android 如何获取系统字体大小
Android 如何获取系统字体大小
-
对嵌套RecyclerView的优化
RecyclerView 是一个更高级的 ListView ,它可以重用view避免额外创建太多的view从而带来流畅的滚动性能。RecyclerView通过叫做 View pool 的东西持有不再可见的 view ,让它可被回收
-
(重要)RecycleView的缓存机制
RecycleView的四级缓存是由三个类共同作用完成的,Recycler、RecycledViewPool和ViewCacheExtension。Recycler用于管理已经废弃或者与RecyclerView分离的ViewHolder,这里面有两个重要的成员,为可以看见的屏幕的内部缓存成员mAttachedScrap、mChangedScrap和滑出屏幕外的外部缓存成员mCachedViews二者共同完成ViewHolder的缓存;RecycledViewPool类是用来缓存整体所有的ViewHolder,是对mCachedViews缓存的补充;ViewCacheExtension是扩展内的缓存对象,默认不加载,需实现方法getViewForPositionAndType(Recycler recycler, int position, int type)来实现自己的缓存。接下来对四级缓存一步步介绍。
-
RecyclerView 嵌套卡顿优化
其实我的卡顿主要来源与设置了动画,不过修改了下面的设置,更顺畅了
-
RecyclerView 刷新闪烁
闪烁是 notifyDataSetChange 造成的。由于适配器不知道整个数据集中的哪些内容已经存在,在重新匹配 ViewHolder 时发生的。 当然,遇到这个问题时有去搜索一些答案,看到的很多都是去禁止 RecycleView 的默认动画,可惜这对我没什么用。下面的方法是对我有用的。
-
RecyclerView setHasFixedSize(true)的意义
设置为true,再调用notifyDataSetChanged(),发现大小重新计算了,看来理解出现错误了。还是再看一下哪些地方用到这个mHasFixedSize吧。
-
浅谈Recycleview嵌套卡顿 以及你所不知道的解决方案
由于项目需要,需要做到recycleview 这里先不讲如何用其他控件代替这种嵌套的方式 先假定你已经嵌套了 老板还不给时间给你给布局方式 那么这个时候你的这个嵌套列表 必定是卡顿的 只要超过一屏,展示效果会有卡顿现象,原因就是由于两个RecyclerView的存在,使得滑动的view滑出当前屏幕的释放存在冲突
-
Android中如何设置字体大小
首先要强调一点,某些用户可能存在视力障碍甚至几近失明,他们无法顺利阅读一般尺寸下的文字内容。Android操作系统意识到了这些情况,并提供了一套显示辅助功能,使得用户可以根据自己的使用习惯随意缩放设备中文本字体的大小。 要在设备上修改字体设定,首先启用“设定”应用,然后选择“显示”项下的“字体尺寸”。用户可以在设备预置的四种文本字体尺寸中选择适合自己的方案(包含小、正常、大、超大),详见图一。
-
RecyclerView 加动画的坑
然后加到recyclerView上,我是在adapter上加的。Adapter的holder复用相信大家也都很熟悉了,这个在绘制效率的提高上很重要,也很容易发现一个问题,就是内容混乱的复用。所以常见的处理就是对view加上tag来多次判断,对于visibility之类的设置一定是if...else的写法,光有if是不可以的。
-
Android夜间模式的几种实现
通过增加一层遮光罩来实现。效果不是很理想,但是好用,毕竟很多手机都有自己的夜间模式了
-
android 快速实现夜间模式
最近项目中遇到了一个问题,夜间模式在8.0以上的手机中不起作用,查看了一下原因,是夜间模式实现方法的问题。分两种情况介绍一下
-
Android夜间模式的实现方案
对于一款阅读类的软件,夜间模式是不可缺少的。最初看到这个需求时候觉得无从下手,没有一点头绪。后来通过查阅资料发现Android官方在Support Library 23.2.0中已经加入了夜间主题。也就是只需要通过更换主题便可实现日间模式和夜间模式的切换。下面截取项目实现的夜间模式效果图:
-
Glide使用高级技巧(解决Glide生成缓存Key问题)
虽说Glide将缓存功能高度封装之后,使得用法变得非常简单,但同时也带来了一些问题。 比如之前有一位群里的朋友就跟我说过,他们项目的图片资源都是存放在七牛云上面的,而七牛云为了对图片资源进行保护,会在图片url地址的基础之上再加上一个token参数。也就是说,一张图片的url地址可能会是如下格式:
-
recycleview嵌套recycleview,高度自适应
高度自适应,竟然什么都不用做!醉啦。
-
More than one file was found with OS independent path 'META-INF/rxjava.properties
之前落下了android新出的很多常用的类库(ok3,rxjava,retrofit)今天刚好有时间,就一个一个学习下,虽然源码看着后面,忘着前面,不过现在好在都会用了噻
-
Android图片加载框架最全解析,带你全面了解Glide 4的用法
Glide的最新版本已经出到了4.4.0,可以说Glide 4已经是相当成熟和稳定了。而且也不断有朋友一直在留言,想让我讲一讲Glide 4的用法,因为Glide 4相对于Glide 3改动貌似还是挺大的,学完了Glide 3再去使用Glide 4,发现根本就无法使用。
-
Glide坑遇记:宽度铺满高度自适应 & GIF加载之坑
Glide 实现 ImageView 宽度填满,高度自适应的效果
-
Android studio 3.1 Messages窗口取消啦
误提示 让我看Messages窗口 可是压根就找不到Messages
-
Joda-Time详解,最好用的java时间工具
任何企业应用程序都需要处理时间问题。应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个 时间点之间的路径。使用 JDK 完成这项任务将非常痛苦和繁琐。
-
Android 1.7 中不支持 lambda 表达式
-source 1.7 中不支持 lambda 表达式
-
解决ButterKnife在library中报“Attribute value must be constant”
我开发中遇到的问题是,通过@BindView(R.id.xxx)查找控件时,会报“Attribute value must be constant”的异常
-
Android Studio错误:Connect to 127.0.0.1:1080 [/127.0.0.1] failed: Connection refused: connect
出现的场景,使用SS设置了全局代理,然后在Android Studio中设置了代理,然后将Android Studio代理关闭之后,还是发现上不了网。出现了这个错误。
-
Android Studio 3.0 利用cmake搭建jni环境(很详细哦)
我用的Android Studio是3.0的版本,然后想搭建一下jni的环境。这里把自己遇到的问题和注意点都记录下。 首先是需要在android studio里面安装最基本的环境。 打开Default Preference里面查看SDK Tool选项。
-
AS3.0以后JNI编程遇到的cmake版本问题
编译报错,提示解决方案为安装cmake3.6.0版本,但无法通过给定链接安装
-
Android NDK开发Crash错误定位
在Android开发中,程序Crash分三种情况:未捕获的异常、ANR(Application Not Responding)和闪退(NDK引发错误)。其中未捕获的异常根据logcat打印的堆栈信息很容易定位错误。ANR错误也好查,Android规定,应用与用户进行交互时,如果5秒内没有响应用户的操作,则会引发ANR错误,并弹出一个系统提示框,让用户选择继续等待或立即关闭程序。并会在/data/anr目录下生成一个traces.txt文件,记录系统产生anr异常的堆栈和线程信息。如果是闪退,这问题比较难查, --------------------- 作者:xyang0917 来源:CSDN 原文:https://blog.csdn.net/xyang81/article/details/42319789 版权声明:本文为博主原创文章,转载请附上博文链接!
-
常见Android Native崩溃及错误原因
什么是Android的C/C++ NativeCrash
-
Android studio 打包后安装闪退 Fatal Signal 6(SIGABRT)...
项目上线前打包安装后闪退,查了很多原因,比如混淆文件的内容,第三方库不加入混淆等等,均未成功,后来关闭混淆打包后运行成功,原因可能是依赖工程中的库文件不能被混淆,关闭本工程混淆开关后,依赖工程的混淆开关也要关闭,关闭混淆后如果怕被反编译,可使用百度开发平台的app加固,加固的同时还能使用多渠道打包工具。
-
动态更新Toolbar Menu以及Menu中同时显示文字和图标
我们经常会有这样的需求,在切换Fragment或者点击某个按钮后动态更新Toolbar上Menu项.但是onCreateOptionsMenu方法只在创建Activity的时候调用一次,以后就不再调用了,所以就不能在onCreateOptionsMenu中做处理了。 不过系统提供了另外的一个方法onPrepa
-
android获取视频、图片时添加防盗链
使用HTTP协议时,可以利用头信息中的Referer做防盗链。 我们在一些网站的网页里访问图片的时候,在图片本站是可以正常看到的,但在外头就不能看到了,这是因为在http的header信息中的referer元素。
-
Android Socket连接(模拟心跳包,断线重连,发送数据等)
因为是要保证全局只能有一个连接,而且我们还需要在不同的Activity中发指令,因此肯定不能在需要发指令的界面中都去连接socket,这样一来不好管理,性能也不好,重复代码也会比较多,所以想了一下还是把socket放到service中比较好,发指令功能都放在service中即可。
-
RecycleView报错Java.lang.IllegalArgumentException: Called attach on a child which is not detached
RecycleView报错Java.lang.IllegalArgumentException: Called attach on a child which is not detached
-
Activity重复跳转
Activity,解决重复跳转的三种方法
-
【FFMPEG】"width / height not divisible by 2" 解决方法
【FFMPEG】"width / height not divisible by 2" 解决方法
-
Android webview处理404、500、断网、timeout页面的问题
Android webview处理404、500、断网、timeout页面的问题
-
一行代码让webview不加载图片
最近项目中需要控制列表页和详情页图片资源的显示,列表页比较好做,详情页是用WebView来展示的,不太好控制图片资源的加载。在Google上找到了两个解决办法,跟大家分享一下!
-
简单的网络资源下载
简单的网络资源下载,从网络中获取资源,并打开一个输出流:
-
android studio error: Default interface methods are only supported starting with Android N (--min-api 24)
android studio error: Default interface methods are only supported starting with Android N (--min-api 24)
-
gradle 排除jar包依赖
gradle 排除jar包依赖
-
Suspicious namespace and prefix combination [NamespaceTypo]
Error: Suspicious namespace and prefix combination [NamespaceTypo] when I try create Signed APK
-
Android中获取颜色的几种方法
直接使用0x开头的颜色值,后续八位分别是透明度,ff为不透明,R,G,B值
-
Android在代码中设置状态栏半透明/全透明
顶部是有文字,小图标等,如果直接用透明半透明 状态栏上的东西会与内容重叠(你觉得无所谓也可以直接用上面2部分代码),这样我们就想做成类似支付宝这样的效果:
-
android:windowSoftInputMode属性具体解释
android:windowSoftInputMode属性一共同拥有9个取值。各自是: stateUnspecified,stateUnchanged。stateHidden,stateAlwaysHidden。stateVisible,stateAlwaysVisible,adjustUnspecified,adjustResize。adjustPan。
-
android 获取手机的CPU型号
android 获取手机的CPU型号
-
(推荐)沉浸式状态栏实现,完美适配Android刘海屏,终极兼容
刘海屏状态栏的高度其实和普通的都是一样,所以只要给全面屏的页面设置一个paddingtop就可以实现,我是写一个公共的头部布局在基类里用,给头布局设置一个paddingtop,paddingtop的值就是状态栏的高度
-
Android适配刘海屏沉浸式状态栏的一些坑
18年简直是刘海元年,所有手机都在跟风刘海屏,甚至每个厂商还有自己的一套适配规范。我的初始需求很简单,就是做一个全屏显示的页面,一般情况下只需要开启Android规范的全屏模式就好:
-
Android APP适配全面屏手机的技术要点
全面屏是手机业界对于超高屏占比手机设计的一个宽泛的定义。从字面上解释就是,手机的正面全部都是屏幕,四个边框位置都是采用无边框设计,追求接近100%的屏占比。但受限于目前的技术,还不能做到手机正面屏占比100%的手机。现在业内所说的全面屏手机是指真实屏占比可以达到80%以上,拥有超窄边框设计的手机。
-
Android MultiDex实践:如何绕过那些坑?
MultiDex, 顾名思义,是指多dex实现,大多数App,解压其apk后,一般只有一个classes.dex文件,采用MultiDex的App解压后可以看到有classes.dex,classes2.dex,… classes(N).dex,这样每个dex都可以最大承载65k个方法,很大限度地缓解了单dex方法数限制。
-
轻松实现动态获取Android手机CPU架构类型
.so文件是unix的动态连接库,是二进制文件,作用相当于windows下的.dll文件。 他使用了C/C++代码编写的可以操作硬件比java更高级的 底层代码,执行速度和效率比其他语言要高。 在Android中调用动态库文件(*.so)都是通过jni的方式。
-
关于android.os.Build
android.os.Build,获取设备信息
-
Android安全开发之浅谈密钥硬编码
在阿里聚安全的漏洞扫描器中和人工APP安全审计中,经常发现有开发者将密钥硬编码在Java代码、文件中,这样做会引起很大风险。信息安全的基础在于密码学,而常用的密码学算法都是公开的,加密内容的保密依靠的是密钥的保密,密钥如果泄露,对于对称密码算法,根据用到的密钥算法和加密后的密文,很容易得到加密前的明文;对于非对称密码算法或者签名算法,根据密钥和要加密的明文,很容易获得计算出签名值,从而伪造签名。
-
Android drawable微技巧,你所不知道的drawable的那些细节
好像有挺久时间没更新博客了,最近我为了准备下一个系列的博客,也是花了很长的时间研读源码。很遗憾的是,下一个系列的博客我可能还要再过一段时间才能写出来,那么为了不至于让大家等太久,今天就给大家更新一篇单篇的文章,讲一讲Android drawable方面的微技巧。
-
Android自定义 View 练习 —— 心电图的绘制
网上已经有不少人,把类似的效果做出来了。我就把自己做出这个效果的思路写出来,希望对想学自定义 View 的朋友有些帮助
-
Android下载图片到相册
调用以上系统自带的方法会把bitmap对象保存到系统图库中,但是这种方法无法指定保存的路径和名称,上述方法的title、description参数只是插入数据库中的字段,真实的图片名称系统会自动分配。 或者
-
Android 关闭多个视图Intent.FLAG_ACTIVITY_CLEAR_TOP用法
如果已经启动了四个Activity:A,B,C和D。在D Activity里,我们要跳到B Activity,同时希望C finish掉,可以在startActivity(intent)里的intent里添加flags标记,如下所示:
-
Android沉浸式状态栏(透明状态栏)最佳实现
在Android4.4之前,我们的应用没法改变手机的状态栏颜色,当我们打开应用时,会出现上图中左侧的画面,在屏幕的顶部有一条黑色的状态栏,和应用的风格非常不协调;为了提供更好的界面交互,google在Android4.4以后提供了设置沉浸式状态栏的方法,对于沉浸式状态栏这个名字存在争议,我们不做讨论,实际的效果其实就是透明的状态栏,然后在状态栏的位置显示我们自定义的颜色,通常为应用的actionbar的颜色,或者是将应用的整体的一张图片也占据到状态栏中,如下图所示:
-
Toolbar 标题字体大小及字体颜色
无师无门遇到点破事也得百度,就单单这破问题 Toolbar 标题字体大小及字体颜色,结果百度一推重复没用的结果,要么一推英文的解释,小学学历的我表示很崩溃!
-
Android 修改Toolbar自带的图标颜色
toolbar自带的按钮颜色是黑色,现在想修改按钮图标颜色,方法如下: 在布局文件中的Toolbar中增加如下2个 属性
-
ToolBar修改返回按钮图标
使用Toolbar时,有时因为不同的手机设备,不能使用系统默认的主题样式或者图标,必须指定特定的资源,防止APP在不同设备上的效果不一样! 我在使用Toolbar时,把这个布局作为一个公共的了,所以修改起来比较容易,下面是该Toolbar的布局文件:
-
显示软键盘,并让布局压缩
博客 学院 下载 图文课 论坛 APP 问答 商城 VIP会员 活动 招聘 ITeye GitChat 搜博主文章 写博客传资源 原
-
【Android - 进阶】之Animator属性动画
在3.0系统之前,Android给我们提供了逐帧动画Frame Animation和补间动画Tween Animation两种动画: 逐帧动画的原理很简单,就是将一个完整的动画拆分成一张张单独的图片,然后将它们连贯起来进行播放; 补间动画是专门为View提供的动画,可以实现View的透明度、缩放、平移和旋转四种效果。
-
android EditText光标位置(定位到最后)
et.setSelection(content.length());
-
批量kill mysql processlist进程
如果大批量的操作能够通过一系列的select语句产生,那么理论上就能对这些结果批量处理。 但是mysql并没用提供eval这样的对结果集进行分析操作的功能。所以只能现将select结果保存到临时文件中,然后再执行临时文件中的指令。
-
android radiogroup样式(设置切换背景与文字颜色)
RadioButton(单选按钮)在Android开发中应用的非常广泛,比如一些选择项的时候,会用到单选按钮。它是一种单选框双状态的按钮,可以选择或不选择。在RadioButton没有被选中时,用户能够按下或点击来选中它。
-
ScrollView中子项设置match_parent失效,无法铺满全屏
ScrollView中子控件设置match_parent失效,无法占满全屏
-
Drawable一个有趣的属性:tileMode
tileMode是drawable 资源文件 bitmap的一个属性, 翻译的意思是平铺模式。用法如下: 在drawable目录下新建一个资源文件 tile_mode_demo.xml
-
TextView设置行间距、行高,以及字间距
Android系统中TextView有默认行间距,但是比较窄有的时候需要我们设置每行行间距。 TextView为我们提供了相关设置属性android:lineSpacingExtra或android:lineSpacingMultiplier。
-
WebView内存泄漏--解决方法小结
Android混合开发时经常用到WebView加载html等页面,而WebView的内存泄漏就是最经常遇到的问题,尤其是当项目中需要用webview加载的页面比较多时。 即使当我退出页面时在我的BrowserActivity的onDestroy()方法中进行内存占用回收(如下图)但并没有效果:
-
AndroidStudio3.0最新 Android Profiler分析器(cpu memory network 分析器)
Android Profiler分为三大模块: cpu、内存 、网络。基本的使用在上一篇文章有讲到。这里详细说一下。
-
Android WebView: 性能优化不得不说的事
Mo说:大家通过前两篇文章想必都能顺利的 get 到 WebView 与 JavaScript 交互的技能了。现在 App 嵌入 H5 页面已经是稀松平常的事情了,开发者要面对 WebView 也越来越多的爆发出来,比如页面加载慢,内存泄露,不同 Android 系统版本采用了不同内核的兼容问题等等。 所以当我们使用了 WebView 这个组件的时候,性能优化的事情就不能不提上议程了。这篇文章我们就针对上述问题来总结下 Android WebView 性能优化的常见方法。 作者:MoTalksCn_林墨 链接:https://www.jianshu.com/p/95d4d73be3d1 來源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
-
为什么要采用WebView独立进程
App中大量Web页面的使用容易导致App内存占用巨大,存在内存泄露,崩溃率高等问题,WebView独立进程的使用是解决Android WebView相关问题的一个合理的方案。
-
webview之独立进程
app内存占用大,被系统回收的概率就高,当每次把app切到后台再回到app时,可能每次app都会重启,最常见的是activity或fragment被回收了,导致fragment使用activity的数据时,出现NullPointerException。内存占用大,app越不稳定。运行性能差。webview加载页面后会占用更多的内存,从而导致app内存占用大,最终导致出现以上问题。
-
Android为每个应用分配多少内存?
熟悉Android内存分配机制的朋友都知道,Android为每个进程分配内存时,采用弹性的分配方式,即刚开始并不会给应用分配很多的内存,而是给每一个进程分配一个“够用”的内存大小。
-
Android子线程中更新UI的3种方法
UI的更新必须在主线程中完成,所以不管上述那种方法,都是将更新UI的消息发送到了主线程的消息对象,让主线程做处理。
-
Android高效内存2:让图片占用尽可能少的内存
Android高效内存:让图片占用尽可能少的内存
-
Android高效内存1:一张图片占用多少内存
在做内存优化的时候,我们发现除了解决内存泄露问题,剩下的就只有想办法减少真实的内存占用。而在App中,大部分内存可能被我们图片占用了,所以减少图片的内存占用可以带来直接的效果。本文就简单介绍一张图片到底占用多少内存,我们先假设我们有一张图片时 600 * 800 的,图片占用空间大小假设是 100KB。另外本文知识点也是面试官喜欢问的一个点,看看自己的回答到什么级别了。
-
gc for alloc freed
在数组中选择图片然后显示,然后。。。logcat不断显示GC回收。最后程序黑屏。
-
LeakCanary,30分钟从入门到精通
在性能优化中,内存是一个不得不聊的话题;然而内存泄漏,显示已经成为内存优化的一个重量级的方向。当前流行的内存泄漏分析工具中,不得不提的就是LeakCanary框架;这是一个集成方便, 使用便捷,配置超级简单的框架,实现的功能却是极为强大的。
-
Android中App可分配内存的大小
结果:(1)未设定属性android:largeheap = "true"时,可以申请到的最大内存空间为221M。 (2)设定属性android:largeheap = "true"时, 可以申请的最大内存空间为478M,是原来的两倍多一些。
-
Android 单个应用的内存限制
获取Android手机应用内存大小 手机不同其性能也不同,手机本身内存可能有大有小,所以针对每个应用的内存大小也不相同。
-
Android ANR发生的原因总结和解决办法
ANR的全称是application not responding,是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR。一般地,这时往往会弹出一个提示框,告知用户当前xxx未响应,用户可选择继续等待或者Force Close。
-
Android 得到当前类的类名和包名
Android 得到当前类的类名和包名
-
XUtils3框架数据库的基本使用方法
今天给大家带来数据库模块的讲解,现在主流的ORM框架很多,比如OrmLite,GreenDao,Active Android,Realm等等,这些框架每个都有自己的优点和缺点,大家完全可以根据自己项目的实际需求进行选择,下面开始进入今天的数据库模块的介绍。
-
是时候弄清楚getExternalStorageDirectory()和getExternalFilesDir()的区别了
App专属文件 vs App独立文件,app专属文件就是那些只有该app才可以使用的文件,例如专属格式的电子书,app独立文件就是那些不依赖于某特定app的文件,例如照片
-
Android Toolbar左、中、右对齐
默认的Android Toolbar中添加子元素view是从左到右依次添加。需要注意的是,Android Toolbar为自身的NavigationIcon(app:navigationIcon)最靠右,Logo(app:logo)紧接NavigationIcon、Title(app:title)接续Logo、保留了默认的位置(从左边到右)。这些Android Toolbar保留的系统设置字段将挤压开发者自己安放在Toolbar中的子view,如图所示:
-
vector兼容的问题以及注意事项
vector兼容的问题以及注意事项,尤其解决4.4出现崩溃的问题
-
2017年GitHub上最火的框架!!!
2017年GitHub上最火的框架!!!
-
gradle读取配置文件
rootProject.ext.dependencies
-
android ToolBar 设置颜色
app:popupTheme——有时候我们有需求:ActionBar文字是白的,ActionBar Overflow弹出的是白底黑字让ActionBar文字是白的,那么对应的theme肯定是Dark。可是让ActionBar弹出的是白底黑字,那么需要Light主题。这时候popupTheme就派上用场了。android:theme 与app:theme——在AppCompat v21里,提供了一个快速方便的方法设置Toolbar的主题,使用app:theme。而新版本22.1.x中,AppCompat 允许对 Toolbar 使用 android:theme代替 app:theme。最好的一点是:它会自动继承父视图的theme ,并且兼容所有APIv11以上的设备。
-
AlertDialog的六种创建方式
AlertDialog的六种创建方式
-
Android vector标签 PathData 画图超详解
SVG是一种矢量图格式,是Scalable Vector Graphics三个单词的首字母缩写。在xml文件中的标签是<vector>,画出的图形可以像一般的图片资源使用,例子如下
-
矢量资源工具Vector_Asset_Studio
Android Studio有一个称为“Vector Asset Studio”的工具, 它可以将SVG文件和PSD文件转化为工程可用的矢量可绘制资源(vector drawable resources),
-
Andorid之vector java代码修改颜色
Andorid之vector java代码修改颜色
-
android 获取当前activity的最顶层及添加布局
顾名思义,getParent就是获取view的父亲节点,而getRootView是寻找当前的view层次中处在最顶层的view,可理解为找出该view实例所在的view层次的根view。
-
关于 android 中 postDelayed方法的讲解
当然,你也可以做一个闹钟提醒延时的函数试试,比如,先用MediaPlayer播放闹钟声音, 如果不想起,被停止播放之后,下次就5分钟后再播放,再被停止的话,下次就4分钟后播放,
-
Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
-
SimpleDateFormat转换时间,12,24时间格式
在使用SimpleDateFormat时格式化时间的 yyyy.MM.dd 为年月日而如果希望格式化时间为12小时制的,则使用hh:mm:ss 如果希望格式化时间为24小时制的,则使用HH:mm:ss
-
getcachedir和getexternalcachedir的区别
应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。 大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。 这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。 如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?
-
html5--移动端视频video的android兼容,去除播放控件、全屏等
android下html5的视频播放一直是前端兼容的重灾区,各种体验差,被诟病已久。但之前的故宫穿越H5,和吴亦凡入伍H5,利用的视频技术,貌似又给人一种新面貌。
-
for example, for httpclient use HttpUrlConnection or okhttp instead
原因:去除commons-logging.jar包后 maven依赖的commons-logging与系统自带的起冲突了.
-
Android根据字符串加载Activity和图片
根据传入的字符串跳转Activity,根据传入的字符加载资源
-
android ScollView 嵌套 WebView 底部空白,高度无法自适应解决
最近要做一个页面,需要 ScrollView 嵌套 WebView,怎么嵌套,怎么解决焦点和 touch 事件冲突,网上一大堆,这里就不赘述了,但是发现 WebView 从一个高度很高的网页加载一个高度很低的网页的时候,高度无法自适应了,造成底部会有一大片的空白,解决方案找到了挺多,描述一下:
-
RecycleView4种定位滚动方式演示
将RecyclerView滑动到指定位置,或者检索RecyclerView的某一项(各个项的高度不确定),然后定位滚动这到一项,将它显示。 下面就讲解4种RecyclerView定位滚动
-
关于Plugin with id 'com.github.dcendents.android-maven' not found.问题解决
com.github.dcendents.android-maven
-
通过gradle下载最新依赖包的一种方式
通常我们添加依赖包有两种方式,一种是直接添加到libs文件夹下面,另一种是通过gradle进行依赖,例如:
-
Activity与AppCompatActivity去掉标题栏
Activity与AppCompatActivity去掉标题栏
-
上面webview 下边评论
NestedScrollView,RecyclerView,webview。评论与webview相结合
-
com.intellij...等出错影响了程序,标红
lick on "File -> Invalidate Caches / Restart"
-
百度地图定位注意事项
首先看百度官方文档,下面只是说的我自己应该注意的事项
-
使用epublib解析epub文件(章节内容、书籍菜单)
前阵子在android上解析epub格式的书籍。发现了这个开源的epub解析库。相关资料甚少!折腾了一阵子,发现其实光使用的话还是挺简单的。真是萌萌哒~下面简单介绍一下epublib。
-
android监听键盘弹出和隐藏
最终还是用检测键盘弹出后的屏幕高度来解决的,虽然网友不推荐,但是还是很好用
-
Glide placeholder 圆角失效
解决办法,一种是不使用占位符,另外一种则是不使用默认动画。
-
Android studio 三大模拟器比较,强烈推荐第三种
强烈建议夜神模拟器,快,兼容性好,so包不出错
-
QQ微信登录失败,报100044错
我用的mob的maven集成方案,说实在的从一开始用maven集成方案就是一个坑啊。每次build都会重新加载所有maven包,后来通过gradle offline总算解决了。
-
安卓虚拟机找不到so文件的解决方法
需要常见arm的虚拟机,或者用真机开发
-
基于VCamera,仿微信录制短视频
基于VCamera,Android仿微信录制短视频,如果喜欢请star,如果觉得有纰漏请提交issue,如果你有更好的点子可以提交pull request。
-
单例模式的好处和缺点?为什么要用单例模式?
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
-
xxxx.so : text relocations 问题解决方法 (最新)
这个确实能解决问题
-
Android SQLiteDatabase使用详细教程
Android提供了创建和是用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。在Android的SDK目录下有sqlite3工具,我们可以利用它创建数据库、创建表和执行一些SQL语句。下面是SQLiteDatabase的常用方法。SQLiteDatabase的常用方法方法名称方法表示含义openOrCreateDatabase(Stringpath,SQLiteDatabase.CursorFactoryfactory)
-
Android studio更新后出现警告:Warning:The `android.dexOptions.incremental` property is deprecated and it has
总新欢第一时间尝试新鲜的东西,跟随google的脚步更新了Android studio,总体还是很顺,但是编译时出现一个警告:Warning:The `android.dexOptions.incremental` property is deprecated and it has;
-
incompatible with attribute android
解决方案就是:在gradle.properties中添加一句:android.enableAapt2=false
-
RecyclerView 图片错位空白的问题
1.图片错位的原因是因为图片异步记载返回去展示出的问题。图片空白,是item刷新,请求图片时间上的问题。 2。viewHolder.setIsRecyclable(false); 就没有tag,不设置 就有tag,但是有没有没啥区别 设置tag,
-
总结和分析几种判断 RecyclerView 到达底部的方法
SwipeRefreshLayout 写一个 RecyclerView 的上下拉 ,里面有一个判断 RecyclerView 是否到达底部的方法 isBottom。我的同事用了这个上下拉之后发现有些小 bug,没考虑周全,譬如各个子项高度不统一的时候,然后我找到原因是因为这个判断上下拉的问题。所以,我就去网上查到几种判断 RecyclerView 到达底部的方法,发现各有千秋。以下的分析都以上一篇文章的 SwipeRecyclerView 为例
-
onInterceptTouchEvent和onTouchEvent调用关系详解 ...
老实说,这两个小东东实在是太麻烦了,很不好懂,我自己那api文档都头晕,在网上找到很多资料,才知道是怎么回事,这里总结一下,记住这个原则就会很清楚了:
-
揭开RecyclerView的神秘面纱(二):处理RecyclerView的点击事件
主要讲述了RecyclerView的基本使用方法,不同的布局管理器而造成的多样化展示方式,展示了数据之后,一般都会与用户进行交互,因此我们需要处理用户的点击事件。在ListView和GridView提供了onItemClickListener这个监听器,然而我们查找RecyclerView的API却没有类似的监听器,因此我们需要自己手动处理它的点击事件。 以下提供两种方法来实现处理RecyclerView点击事件的功能,以下代码均基于上一篇文章的代码做出修改。
-
关于OnTouch 和OnClick同时调用冲突的解决方案
大家在搞轮播图的时候会碰到这样的情况,点击进入webview界面,长按轮播图停止轮播,手松开图又开始轮播,这里就涉及到了OnTouch 和OnClick同时调用。两者是有冲突的。这里简单介绍,给大家提供思路。
-
Retrofit 设置 超时时间
今天开发的时候遇到一个网络请求超时的问题,后台处理是成功的,但是移动端返回的总是提示请求超时,在设置了retrofit请求超时的时间延长以后,就可以请求成功了,下面是配置的方法:
-
xUtils3.0版本的发送同步网络请求的方式
对于Android开发来说,基本都是用异步来从网络上请求数据,很少用到同步请求的。近日项目有个地方需要使用到同步请求(以我目前的知识储备来说好像只能用同步请求来解决这个问题了),去网上搜索相关资料,又没有找到什么明确的使用方法。所以记下来,以备不时之需。
-
String和inputstream互转
String和inputstream互转
-
Urlconnection对象获得inputStream值
Urlconnection对象获得inputStream值
-
Android系统中设置TextView的行间距(非行高)
Android系统中TextView默认显示中文时会比较紧凑,不是很美观。为了让每行保持一定的行间距,可以设置属性android:lineSpacingExtra或android:lineSpacingMultiplier。
-
Android事件触发EditText焦点和自动弹出键盘
通常在一个布局中,给EditText设置焦点方式如下 ,在Activity启动后会自动将焦点定位到第一个EditText并且键盘自动弹起。
-
Android layout实现输入法弹出后,布局整体上移
那如果要实现沉浸式状态栏又要保持布局不会被输入法遮挡,怎么办呢? 只要在根布局加上android:fitsSystemWindows=”true”即可,效果如下(为方便看效果我把背景改成了黄色):
-
Android 解决沉浸式状态栏下,输入法弹出,布局不会自动调整的BUG
在开发中,如果输入框在布局的底部。在弹出输入发时,为了使输入法不遮挡输入框通常有两种做法: 1.将布局压缩(Activity的android:windowSoftInputMode属性设置为”adjustResize”)。 2.移动布局,将布局顶到输入框之上(Activity的android:windowSoftInputMode属性设置为”adjustPan”)
-
Android实现沉浸式状态栏的那些坑
最近项目需要实现沉浸式的状态栏,其实我在之前就了解过Android的沉浸式,发现有些棘手就放弃了,但是此次是公司的项目需要的,就花了几天把这个问题搞定了,在此记录一下,并mark几个坑。 首先,沉浸式是Android 4.4及以上才有的,在后续的5.0及6.0上面都增加了一些相关支持,于是问题就不太好办了。先看我实现的效果:
-
如何去掉toolbar导航栏中向右的箭头
今天又需求要去掉,toolbar中的返回键
-
设置EditText不自动聚焦
如果界面中有EditText的时候,用户打开界面的话EditText就会自动聚焦。如果想取消这种一打开界面EditText就聚焦效果,可在EditText的上级父容器中加入如下代码:
-
动态设置元素宽高
动态设置元素宽高
-
Android开发笔记——SharedPreferences 存储实体类以及任意类型
我们常常要用到保存数据,Android中常用的存储方式有SQLite,sharedPreferences 等,当然也有各自的应用场景,前者适用于保存较多数据的情形,后者责倾向于保存用户偏好设置比如某个checkbox的选择状态,用户登录的状态等等,都是以键值对的形式进行的文件读取,可以存储String,int,booean等一些基本数据类型等等。
-
Android中finish掉其它的Activity
在Android开发时,一般情况下我们如果需要关掉当前Activity非常容易,只需要一行代码 this.finish;即可。 那么,如果是想要在当前Activity中关掉其它的Activity应该怎么实现呢? 比如更改了某个设定,程序需要重新运行并加载新的配置文件,就要用到restart或finish让程序重启。
-
android点击事件,第一次无效,第二次才响应的问题
今天碰到的问题,android的标题栏一个回退button,每次进入的时候第一次点击无效,一直到第二次点击时才响应,然后把代码copy到系统的回退按钮里面,结果每次都能响应,后面想了想,应该跟焦点有关系
-
使用Intent传递对象的两种方式
Intent 的用法相信你已经比较熟悉了,我们可以借助它来启动活动、发送广播、启动服务等。在进行上述操作的时候,我们还可以在Intent 中添加一些附加数据,以达到传值的效果,比如在FirstActivity 中添加如下代码:
-
TextView——setCompoundDrawables用法
setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds区别
-
Android退出应用最优雅的方式(改进版)
我们先来看看几种常见的退出方法(不优雅的方式)
-
PowerManager之PowerManager
当你在做一些事情时,如果持续时间过长,那么一段时间后屏幕会灭掉,如果你想在你做这些事时屏幕始终保持点亮状态,那么你需要WakeLock的帮助。
-
Android Sqlite查询优化之一---运用索引
最近笔者在做聊天功能模块,发现当本地聊天数据记录过大,以10万行数据进行了检索测试,发现时间太长了,要6s左右,但学着运用了下索引,时间大大提升,紧要几百毫秒就能完成. 以下内容,摘抄至网络
-
android Fresco gif图片不显示
最后百度搜索,发现高版本的Fresco 需要单独引入,gif模块。官方文档如下。
-
Only the original thread that created a view hierarchy can touch its views
很多网友在Android中使用多线程处理UI相关内容时可能会发现Logcat提示Only the original thread that created a view hierarchy can touch its views这样的错误,这主要是Android的相关View和控件不是线程安全的,我们必须做独立的处理这点比J2ME麻烦一些,这里Android给 我们提供了很多方法,有关线程的
-
Android BASE64Encoder不能用的问题
昨天项目与后台交互的接口传参数需要加密,用的是BASE64Encoder加密,可是这个类不能用,谷歌了一下说的是:
-
lib引入jar包,引起jar包冲突,transformDexArchiveWithExternalLibsDexMergerForDebug unable to merge dex
一般jar包冲突,多是两个jar包版本不一样引起的。 我的解决方案是:
-
layer-list -- layer-list的基本使用介绍
简单理解,layer 是层,list 是列表,那么 layer-list 就是层列表的意思。但是,是什么层列表呢?? 其实 layer-list 是用来创建 LayerDrawable 的,LayerDrawable 是 DrawableResource 的一种, 所以,layer-list 创建出来的是 图层列表,也就是一个drawable 图形。
-
TraceView报错:unable to open trace file
程序效率有些问题,想起用TraceView来分析一下,可是一直报标题中的错误,无法创建出我所需要的aa.trace文件,分析也就无从做起。
-
Android中的TextView超过n行显示省略号
在TextView中添加这两个属性的设置即可(显示n行,超过n行,用省略号代替) 例如:n = 3时,设置如下:
-
Android用SoundPool播放音效
SoundPool可以用来播放一些较短的音效,如一些信息提醒之类的
-
利用bugly热更新和美团walle多渠道打包
利用bugly热更新和美团walle多渠道打包
-
NestedScrollView+Recyclerview下滑卡顿解决方法
大家在进行安卓开发用到NestedScrollView+Recyclerview的时候,经常出现的情况就是加载下滑的时候没有任何问题,很流畅,但是在下滑以后明显出现了卡顿的情况,小编根绝这个问题,给大家再来的解决方法,一起来学习下。
-
ContextWrapper中attachBaseContext()方法使用技巧
ContextWrapper类的源码,ContextWrapper中有一个attachBaseContext()方法,这个方法会将传入的一个Context参数赋值给mBase对象,之后mBase对象就有值了。
-
Context都没弄明白,还怎么做Android开发?
作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言,Activity本质上也是一个对象,那上面的写法有什么问题呢?估计很多人说不清道不明。
-
multidex 在api 19 遇到的问题,启动闪退,不报错
今天在安卓4.4下跑了一遍我的app,结果崩溃,不过打包好的没问题。
-
如何防止多次打开Activity?
android:launchMode="singleTask" 加上这句,每次打开如果已有此activity,就会打开原来的实例,否则会创建新的activity
-
How to add new Column to Android SQLite Database?
android 数据库新增有默认值的字段。
-
Android如何使用SQLiteOpenHelper在已经存在的数据库中插入一个字段
Andoird的SQLiteOpenHelper类中有一个onUpgrade方法。帮助文档中只是说当数据库升级时该方法被触发。经过实践,解决了我一连串的疑问:
-
Android SQLite 升级数据库,在原有数据库的基础上添加一列
原本以为很简单的问题,直接在原来创建数据库的语句中加上需要添加的列new_column,但是运行时发现,应用crash。原因是,原有数据库文件已经存在的情况下并不会重新创建数据库,也就是说此时数据库中并没有new_column列,这个时候,运行query()来查询数据库如果包括new_column列,就会导致应用crash。
-
打包app出现崩溃,debug没有问题的原因
这个原因100%是混淆时出了问题。
-
Android在getString()中添加参数
Android在getString()中添加参数
-
PermissionsDispatcher 6.0权限控制框架注意事项
简单写一下遇到的坑
-
目前最流行的运行时权限请求框架PermissionsDispatcher、RxPermissions和easypermissions的使用和对比
今天是2017年6月23日,到目前为止,Android6.0已经发布了两年的时间,随着时间的推移,Android6.0肯定会越来越普及,而6.0版本的一个重大改动就是增加了运行时权限(动态权限):一些危险的权限不单止要在AndroidMainifest文件声明,还要在运行的时候使用代码来申请,让用户同意才进行授权。
-
Html5去掉滚动条和Android中去掉WebView滚动条
在android中在xml文件中直接定义WebView组件的属性即可:
-
implementation影响依赖的library,应该用compile
今天在library中引入了一些第三方jar包,通过implemention的方法,接头在主工程中找不到。
-
Android在thread中Toast不能显示问题解决
一般如果不是在主线程中又开启了新线程的话,一般都会碰到这个问题。 原因是在创建新线程的时候默认情况下不会去创建新的MessageQueue。
-
android Toast提示异常:java.lang.RuntimeException: Can't create handler inside thread that has not called
原来是在子线程弹Toast了, 切记,Toast只能在UI线程弹出,如果一定要在子线程弹,那么就通过 new Handler(Looper.getMainLooper()) 来弹
-
Android : Getting error “cannot resolve getSharedPreferences(java.lang.String, int)”
Android : Getting error “cannot resolve getSharedPreferences(java.lang.String, int)”
-
在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案
当我们在Android依赖库中使用switch-case语句访问资源ID时会报如下图所示的错误,报的错误是case分支后面跟的参数必须是常数,换句话说出现这个问题的原因是Android library中生成的R.java中的资源ID不是常数:
-
andorid,把控件置于最顶端。bringToFront的意外发现
bringToFront方法在SDK中的说明是“Change the view's z order in the tree, so it's on top of other sibling views”,翻译过来就是改变view的z轴,使其处在他父view的顶端。关于bringToFront的实现,网上有很多资料介绍,大体来说就是将这个view从父view中移除,然后再加入父view的顶端。具体实现如何呢?
-
Android 透明度数值
为了便于查找,记录一下Android透明度对应的数值。
-
读文档,看demo,加俩字,仔细!!!!
读文档,看demo,加俩字,仔细!!!!
-
Android设置控件不可点击
学会安卓控件的不可点击,再加上控件的透明度,估计你会做出不错的效果来。
-
Android设置控件的透明度(半透明效果)
学会用androud透明度,不但可以吧ui做到更加美观,还可以做出更加不错的效果来。
-
DexArchiveMergerException: Unable to merge dex
我是把一个工程当做library导入后,所出现的问题,肯定是有很多冲突导致的。
-
集成百度视频sdk遇到java.lang.NoClassDefFoundError
哎,这些个坑啊,以后还是不要信文档,文档有可能懒得更新,还是信demo啊。
-
android-studio-please-select-android-sdk
重新打开android Studio工程,点击运行按钮,出现,please-select-android-sdk这样的提示
-
Your project contains C++ files but it is not using a supported native build system.
Your project contains C++ files but it is not using a supported native build system.
-
fragment调用Activity中的方法
我们有时候需要fragment 与activity进行互调方法,和变量,下面就让我们看看吧。
-
加快gradle的编译速度总结-亲身经历
这两题集成mob的maven,这个编译速度是慢的可怜啊,经过百度得出了这样一个方案,配置好以后那可是神速啊,妈妈再也不用担心我的编译速度看。嗷嗷的。
-
Error:Execution failed for task ':app:processDebugManifest'. > Manifest merger failed with multiple,万能的解决办法
以前遇到这个问题我是很头疼的,因为根本不知道头绪,更不知道哪里错了。下载我找到一个万能的结局办法。
-
用fastjson进行 list,String,json之间相互传换
用fastjson进行着写list,String,json之间的互相转化,真的是很方便。易与数据的操作。
-
android 列表刷新排版错误
进行list列表增加修改数据,发现数据变的混乱,后来发现与缓存有关系。
-
android EditText 改变光标的颜色
写好以后,发现光标是默认的红色有点难看啊
-
用xml解决沉侵式,输入法遮挡输入框的方法
其实用xml属性就能解决,输入法遮挡输入框的方法
-
Android沉浸式状态栏实现及处理键盘弹出
做了晨侵式状态栏,然后发现键盘弹出遮挡住了EditText...,怎么办
-
仿QQ长按弹出功能菜单
android app普遍常用的弹出上下文菜单是列表式的。QQ列表,在上方弹出冒泡效果菜单,如图
-
RecyclerView数据增加后,adapter刷新后,出现空白的问题
list增加,但是只是item多了空白,数据并没有增长的问题
-
Android中Uri和Path之间的转换
其实Uri分好多种,下面介绍介绍
-
uri,file,path互相转化
uri,file,path互相转化
-
七牛上传图片 open failed: EACCES (Permission denied)
好久不做安卓了,把原来工程的七牛上传图片的代码粘贴过来,运行竟然出错了
-
cannot cast 'javax.xml.rpc.Call' to 'org.apache.axis.client.Call
用java调用axis报错的解决方案
-
Failed to read artifact descriptor for org.apache.axis:axis:jar:1.4
pom这个报错,不一定是真的报错,看看下面的详解吧
-
android studio logcat写入到指定文件
首先要找到adb 一半默认文件夹 C:\Users\xiaoh\AppData\Local\Android\Sdk\platform-tools
-
Java如何获取Date的“昨天”与“明天”示例代码
最近在做项目的时候用到Date和Calendar比较多,而且用到的方式也比较全,突然想到一个问题,Java如何获取Date的"昨天"与"明天",也就是前一天和后一天呢?思考后写出了方法,想着万一以后用到,就总结出来,也方便有需要的朋友们参考借鉴,下面来一起看看吧。
-
MySQL分段统计SQL写法 与 Mybatis 异常 java.math.BigDecimal cannot be cast to java.lang.Integer
MySQL分段统计SQL写法 与 Mybatis 异常 java.math.BigDecimal cannot be cast to java.lang.Integer
-
解决第三方包内jar包冲突
这个问题就是因为引入jar包的冲突,这时我们可以在build.gradle中添加如下代码,下方单独的是添加的代码
-
Android开发技巧:Application和Instance
在开发过程中,我们经常会需要用到一些全局的变量或者全局的“管理者”,例如QQ,需要有一个“全局的管理者“保存好友信息,各个activity即可直接通过该”管理者“来获取和修改某个好友信息,显然,这样的一个好友信息,保存到某一个具体的activity里面,然后依靠activity的intent来传递参数是不合适。我们有两种方法来实现这样一个全局的管理者,一种是使用C++/Java中常用的单例模式,另一种是利用Android的Application类,下面一一阐述。
-
Activity的四种launchMode
launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task。
-
ndroid 使用腾讯X5 Webview浏览器拍照或从相册上传图片
ndroid 使用腾讯X5 Webview浏览器拍照或从相册上传图片
-
动态生成一个textview,设置padding不起作用的解决办法。
今天在动态写布局的时候,动态new了一个TextView,然后给其设置padding不起作用。
-
android 用代码设置margin属性,textView加粗
设置layout参数, textview字体加粗
-
ImageView的android:adjustViewBounds属性
取值为true时: Adjust the ImageView's bounds to preserve the aspect ration of its drawable. 调整ImageView的界限来保持图像纵横比不变。 这并不意味着ImageView的纵横比就一定和图像的纵横比相同
-
Android ImageView高度根据图片比例自适应
设置adjustViewBounds // 是否保持宽高比
-
修改ViewPage的r预加载,左右滑动,切换经过中间页问题,ViewPager一屏显示多张图片
1.屏蔽切换的时候需要经过中间页 2.屏蔽ViewPager的滑动 3.预加载问题
-
ViewPager预加载问题和onCreateView多次调用问题的解决
1,在使用ViewPager嵌套Fragment的时候,由于VIewPager的几个Adapter的设置来说,都会有一定的预加载(默认是左右各一个Frament)。通过设置setOffscreenPageLimit(int number) 来设置预加载的熟练,在V4包中,默认的预加载是1,即使你设置为0,也是不起作用的,设置的只能是大于1才会有效果的。我们需要通过更改V4包中的默认属性才可以
-
使用selector修改TextView中字体的颜色
selector想必大家都用过了,但是在修改字体的颜色的时候还是要细心。 我们在TextView中设置字体颜色一般使用
-
onInterceptTouchEvent和onTouchEvent调用关系详解
如果没有onInterceptTouchEvent,只考虑onTouchEvent的话,比较容易分析和理解。假如有三层布局结构,linearLayout1,linearLayout2,textView,从前到后是包含的关系。那么下面分情况说明。
-
ViewPager+Fragment取消预加载以及禁止滑动
取消预加载 网上了解了很多取消预加载的方法,里面提到了使用一个viewpager的public方法setOffscreenPageLimit 经过查看源码以及验证发现该方法是管理Viewpager预加载的页数,最低也是默认为一页(例如ViewPager一共有4页,当前手机屏幕显示第一页
-
ViewPager不为人知的秘密,禁止滑动切换
ViewPager翻页控制 关于控制ViewPager的翻页,在网上已经有很多解决方法了,我们一个个来看看。 setScanScroll()
-
Android样式的开发:Style篇
前面铺垫了那么多,终于要讲到本系列的终篇,整合所有资源,定义成统一的样式。 哪些该定义成统一的样式呢?举几个例子吧:
-
Android开发笔记——圆角和边框们
在做Android界面开发时,我们往往希望它尽可能优美,尽可能显得专业。于是你看了看其他应用,哇,好多边框和圆角啊。你是不是也想给自己的应用加上边框和圆角效果?呃……那怎么做呢?如果你是从web前端跑到Android来的,那么我想你一定想到了不下三种解决方案。如用图片替代,用CSS3定义,用JS画。在Android中,其实也有类似的用法,本文将简单介绍两种Android圆角和边框的实现。
-
Android官方技术文档翻译——清单合并
一般情况下,有三种类型的清单文件需要合并成一个最终的应用程序清单,这里按照优先级顺序列出: Product flavors 和构建类型所指定的清单文件。 应用程序的主清单文件。 类库的清单文件。
-
Suggestion: add 'tools:replace="android:allowBackup"' to <application> element at AndroidManifest.xm
添加tools:replace属性,替换要覆盖的标签属性即可。这样库文件中AndroidManifest文件标签属性会被主程序的标签属性替换掉。
-
Android Studio gradle 文件中 ${supportLibVersion} 用法
所以每次升级的时候都要修改后面的23.1.0版本号,Android开发小组的Chris Banes想出了这样的一个方法,不用每次修改每个版本,而只需要修改一次就行了,如下
-
修改Android默认的keystore
Android Studio 下debug情况下直接使用release的签名
-
Android Studio签名打包的两种方式
给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行。签名就代表着自己的身份(即keystore),多个app可以使用同一个签名。
-
史上最全webview详解
WebView在现在的项目中使用的频率应该还是非常高的。 我个人总觉得HTML5是一种趋势。找了一些东西,在此总结。 本篇最后有一个非常不错 的 Html5Activity 加载类,不想看的可以直接跳下载。
-
WebView你真的熟悉吗?看了才知道
在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。下面总结一下使用webview遇到的那些事、那些坑。
-
最全面的Android Webview详解
现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等,如下图
-
在Android Studio中如何建立app的assets文件夹
在app项目栏上用鼠标右键打开选择菜单,点选New,在下级菜单中选择Folder,再下级菜单中选择Assets Folder
-
移动端Web开发调试之Chrome远程调试(Remote Debugging)
本篇主要说一下Chrome RemoteDebugging 的方法,之前也遇到一些坑,自己总结了一些经验,分享如下。
-
移动端Web开发调试之Chrome远程调试(Remote Debugging)
本篇主要说一下Chrome RemoteDebugging 的方法,之前也遇到一些坑,自己总结了一些经验,分享如下。
-
解决 Agreeing to the Xcode/iOS license requires admin privileges
一时兴起,决定将mac 上的xcode b1 卸载掉,安装xcode b3,卸载和安装过程一直很顺利,问题出现在我使用svn的过程中,当我打开终端,敲入svn update命令后,屏幕上毅然决然的出现了“
-
Android Studio --“Cannot resolve symbol” 解决办法
Android Studio 无法识别同一个 package 里的其他类,将其显示为红色,但是 compile 没有问题。鼠标放上去后显示 “Cannot resolve symbol XXX”,重启 Android Studio,重新 sync gradle,Clean build 都没有用。
-
php-fpm占用系统资源分析
由上图分析,可以看出共有602个进程,其中有601个进程休眠了。这好像有点不对劲,内核进程也就80个左右,加上memcached, nginx, mysqld,也不会超出90个。除了这些,剩下的只有php-fpm管理的php-cgi,难道是…?
-
php-fpm占用系统资源分析
由上图分析,可以看出共有602个进程,其中有601个进程休眠了。这好像有点不对劲,内核进程也就80个左右,加上memcached, nginx, mysqld,也不会超出90个。除了这些,剩下的只有php-fpm管理的php-cgi,难道是…?
-
No such property: sonatypeRepo for class:
这种问题一般是出现在导入一些开源项目的时候。原因为该项目的原作者会把项目发布到maven中央仓库中,所以在gradle中添加了相关的maven发布任务,而发布任务需要配置
-
Android中资源文件中的字符串数组string-array简单用法
在Android中,用string-array是一种简单的提取XML资源文件数据的方法。
-
Java中Arrays的asList()方法
Java中Arrays的asList()方法 可以将 数组转为List 但是,这个数组类型必须是 引用类型的,如果是8中基本数据类型就不可以 原因如下,引用别人的一篇文章:
-
Android WebView加载本地html并实现Java与JS交互
最近做的一个项目中,用到自定义地图,将自定义地图转换成html页面,现在需要做的是如何将本地的html加载到android中,并可以实现交互。
-
Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
在Android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等。
-
【Android】BroadCast广播机制应用与实例
第一步:需要继承BroadcastReceiver类,覆写其中的onReceive()方法.
-
Android开发中Handler的经典总结
当应用程序启动时,Android首先会开启一个主线程(也就是UI线程),主线程为管理界面中的UI控件,进行事件分发。
-
最全面的Android Webview详解
现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等,如下图
-
Andriod Studio结合Visual Studio Emulator for Android调试Android App
说到开发就绕不开调试程序,调试Android App我们有2种选择,真机调试和模拟器调试:真机调试相对简单,就不做介绍了,还有一方面原因是由于安卓手机一旦插到电脑上,开始ADB调试后,各种的流氓软件净是往手机上装垃圾应用,妈蛋的;随后就试了几次Android Studio的模拟器之后,无限感慨,真尼玛的卡,卡,卡,,,是可忍孰不可忍.....
-
AndroidStudio Failed to resolve: junit:junit:4.12的解决办法
有两种方法解决在使用Android studio做开发的时候,可能会遇到Failed to resolve:junit:junit:4.12的问题。