Android
文章平均质量分 52
MOONNIFE
这个作者很懒,什么都没留下…
展开
-
Android FileProvider笔记
通过FileProvider.getUriForFile(@NonNull Context context, @NonNull String authority, @NonNull File file)方法获得一个有临时权限的Uri给客户端用来访问本APP文件。当然看FileProvider类的注释更加详细。原创 2023-09-19 19:37:13 · 619 阅读 · 0 评论 -
IntentFilter笔记
Intent中的action必须命中中的一个action,才能匹配成功。Intent无action时匹配成功。原创 2023-09-18 15:58:43 · 477 阅读 · 0 评论 -
ASM使用要点记录
AMS记录原创 2023-03-03 20:24:51 · 306 阅读 · 0 评论 -
一个不一样的 ANR
最近碰到一个 ANR 问题,拿到 traces 文件后,显示主线程的堆栈是下面这样的: 1234567 at android.os.MessageQueue.nativePollOnce(Native method)at android.os.MessageQueue.next(MessageQueue.java:323)at andro...转载 2020-01-22 17:30:27 · 589 阅读 · 0 评论 -
Android IPC笔记
Android中进程间通信方式:Intent、ADIL、Messenger、ContentProvider、Socket、共享文件Android中的多进程:一般是指一个APP开启多个进程。方式:四大组件在Manifest中添加android:process属性1)android:process=":abc"APP的私有进程2)android:process="edf"可以通过shareUID与其他...原创 2018-04-22 13:26:20 · 148 阅读 · 0 评论 -
MeasureSpec笔记
MODE_MASK 1100 0000 0000 0000 0000 0000 0000 0000SpecMode:1)UNSPECIFIED = 0 << 300000 0000 0000 0000 0000 0000 0000 0000父容器不对View有任何限制,要多大给多大,这种情况一般用于系统内部,表示一种测量状态。2)EXACTLY = 1 << 300100 ...原创 2018-04-17 23:02:31 · 158 阅读 · 0 评论 -
ConstraintLayout使用注意事项
1、需要在对应Module下添加依赖,目前发现在其他依赖的Module下添加过也不行 compile 'com.android.support.constraint:constraint-layout:1.0.2'2、参考文档:https://blog.csdn.net/lmj623565791/article/details/78011599https://blog.csdn.net/gu...原创 2018-04-09 12:03:10 · 593 阅读 · 0 评论 -
改变状态栏及字体颜色
1、框架https://github.com/Zackratos/UltimateBarUltimateBar.newImmersionBuilder() .applyNav(true) // 是否应用到导航栏 .build(this) .apply();2、结合getWindow().get...原创 2018-03-30 17:01:33 · 408 阅读 · 0 评论 -
Android Material Design系列之RecyclerView和CardView
去年很早之前,我就讲解过RecyclerView的使用,今天我们就在讲解CardView的时候,顺便再把RecyclerView同时讲解一下。RecyclerView、CardView为用于显示复杂视图的新增Widget。接下来看看如何使用吧。RecyclerViewRecyclerView介绍RecyclerView作为替代ListView使用,它更先进,更灵活,RecyclerView标准化了...转载 2018-03-19 17:13:29 · 231 阅读 · 0 评论 -
Android 状态栏关于开发的几件事
Android 状态栏关于开发的几件事最近手头做了一个新的项目,开发中对状态栏的要求比较多,也作了一些总结,分享给大家。 简答题全屏、不保留状态栏文字(Splash页面,欢迎页面)全屏保留状态栏文字(页面上部有Banner图)标题栏与状态栏颜色一致(部分App风格)不同Fragment中对StatusBar的处理不一样设置状态栏文字的颜色切换fragment时,toolBar显示与否、status...转载 2018-03-12 15:29:16 · 525 阅读 · 0 评论 -
Android 冷兵器 之 tools
前言Android开发在所难免的就是UI的预览和调整,一般情况下都是直接run看效果,或者是使用AS的preview预览,但这同样带来个小问题,就是你的测试内容会跟随着代码被打包到apk中,如果没做容错的处理很有可能将测试内容展示给用户。还有就是像一些列表是不支持预览效果的,比如ListView。其实Android老早就有tools命名空间,作为一个开发快到一年的我,最近看到一篇文章才发现这个to...转载 2018-03-02 15:10:24 · 262 阅读 · 0 评论 -
Android TextView加上阴影效果
废话不多说直接说关键的:字体阴影需要四个相关参数:1. android:shadowColor:阴影的颜色2. android:shadowDx:水平方向上的偏移量3. android:shadowDy:垂直方向上的偏移量4. android:shadowRadius:是阴影的的半径大少最好这4个值都一起设计 shadowColor这个属性就不多说了,android:shadow...转载 2018-03-02 15:09:33 · 615 阅读 · 0 评论 -
手机App之https抓包
环境:win7、jdk工具:burpsuite下载地址:http://www.jb51.net/softs/590164.html1、配置burpsuite打开burpsuite,切换到Proxy,然后切换到下面的Options选项,然后点击add,然后配置好端口,ip选择本机的ip地址,然后点击ok添加将running框勾选上 2、导入burpsuite证书在电脑端使用Firefox浏览器访问设...原创 2018-03-07 15:27:33 · 6227 阅读 · 0 评论 -
Theme.AppCompat.Light.NoActionBar
Theme.AppCompat.Light.NoActionBar 找不到报错 检查是否与Android Studio版本号一致classpath 'com.android.tools.build:gradle:2.2.3'原创 2018-01-31 11:34:14 · 3176 阅读 · 0 评论 -
WebView自适应
一、图片自适应/** * 离线加载的网页内容要加上的一些网页源码 * 博主这里返回的网页源码是指包含body的内容的,所以这些网页的头和一些css样式可以直接拼接 */private String codePrefixOne = "\"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.转载 2018-01-22 14:20:30 · 368 阅读 · 0 评论 -
优秀控件搜集
一个功能强大的自定义SeekBar控件简介:github地址:https://github.com/zhou-you/EasySignSeekBar自定义三级联动地址选择器控件简介github地址:https://github.com/1002326270xc/MultiSelectView-masterAndroid 超炫酷的空气净化器控件 |原创 2017-11-29 13:48:46 · 309 阅读 · 0 评论 -
Serializable和Parcelable 笔记
Serializable: serialVersionUID相同则表明序列化的类和当前类的版本是相同的,可以反序列化成功。不同,说明序列化的类和当前类相比发生了变化,则反序列化失败。如果类的serialVersionUID相同,但是增加或删除了一些成员变量,依然可以反序列化成功;但是如果类名或类成员变量的类型发生了变化,则类的结构有了毁灭性的变化,根本无法恢复。静态成员不会参与序列化,tra...原创 2018-04-22 13:27:58 · 184 阅读 · 0 评论 -
笔记
1、判断是否是主线程Looper.getMainLooper().getThread() == Thread.currentThread()2、PopupWindow使用问题在Android7.0上面如果使用如下方式会出现调用showAsDropDown方法PopupWindow顶到状态栏下方,而不是在指定View下方的现象,解决办法计算PopupWindow到屏幕底部实际需要的高度,不用MATC...原创 2018-05-07 10:04:04 · 188 阅读 · 0 评论 -
Android WebView图片查看
1、在WebViewClient的onPageFinished里面调用如下方法private void addImageClickListener(WebView webView) { webView.loadUrl("javascript:(function(){" + "var objs = document.getElementsByTagNa...原创 2018-05-07 18:24:00 · 909 阅读 · 0 评论 -
Xposed模块开发指南
1、Xposed框架是什么?Xposed框架是一款开源框架,其功能是可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运行。2、Xposed模块是什么?Xposed模块即按照Xposed模块开发规范开发出来的包含你想在别人Apk里面执行的代码的一个Apk。很多时候我们听到的微信抢红包神器、修改手机定位神器等...原创 2019-06-09 00:12:28 · 5255 阅读 · 3 评论 -
终于有人把Java内存模型说清楚了!
网上有很多关于 Java 内存模型的文章,但是很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文就来整体的介绍一下 Java 内存模型,读完本文以后,你就知道到底 Java 内存模型是什么,为什么要有 Java 内存模型,Java 内存模型解决了什么问题等。本文中很多说法都是笔者自己理解后定义出来的。希望能够让读者可以对 Java 内存模型有更加清晰的认识。为什么要有内存模型...转载 2019-03-23 22:26:13 · 246 阅读 · 0 评论 -
Android 混淆技术全面整理
0x00 综述在你完成项目打包发布之前,很有必要加上代码混淆来避免一些用户恶意对你的 APK 进行反编译,通过反编译非加密的 dex 文件就可以看到源码,甚至用 Android Studio Analyze APK 就可以分析源代码。如果没有特殊原因,所有 APP 都应该开启混淆。最近也是有项目需要加混淆,所以整理一个系列教程做为备份与日后学习。增加混淆的必要性总结加密代码、资源文...转载 2019-03-09 14:46:02 · 681 阅读 · 0 评论 -
一种极低成本的Android屏幕适配方式
在Android开发中,由于Android碎片化严重,屏幕分辨率千奇百怪,而想要在各种分辨率的设备上显示基本一致的效果,适配成本越来越高。虽然Android官方提供了dp单位来适配,但其在各种奇怪分辨率下表现却不尽如人意,因此下面探索一种简单且低侵入的适配方式。传统dp适配方式的缺点android中的dp在渲染前会将dp转为px,计算公式:px = density * dp;density = d...转载 2018-07-06 15:32:11 · 248 阅读 · 0 评论 -
APP优化总结
静态内存优化: 1、内存泄漏(线程、Handler、动画、) 2、图片(图片尺寸、质量,使用完及时释放) 3、SharePreference(一次性加载到内存,静态的,不要存放大对象),用文件或者数据库代替 4、单例,静态缓存 5、内存紧张时清除一些缓存,在onTrimMemory中,Glide、静态缓存等 3、其他()运行时内存分析优化: 包大小: 1、大文件(大图片、无用图片等)性能优化:...原创 2018-06-28 17:27:12 · 247 阅读 · 0 评论 -
实践App内存优化:如何有序地做内存分析与优化
由于项目里之前线上版本出现过一定比例的OOM,虽然比例并不大,但是还是暴露了一定的问题,所以打算对我们App分为几个步骤进行内存分析和优化,当然内存的优化是个长期的过程,不是一两个版本的事,每个版本都需要收集线上内存数据进行监控以及分析。版本迭代过程中,内存增长过快,不仅会导致一定概率的OOM,运行时若出现内存抖动,导致频繁GC,则会对App的流畅度以及用户体验造成很大影响。本文主要会根据实际项目...转载 2018-06-28 17:26:24 · 255 阅读 · 0 评论 -
Android性能优化及安全要点
性能优化方向内存 内存泄露,在组件中使用线程时会出现内存泄露,RxJava bindLifeCycle解决此问题,使用Handler时,RxJava可以解决。 Activity或者Fragment结束的时候,关闭动画,Dialog等 LeakCany监测内存泄露。流、游标等关闭 图片占用内存,采用低质量加载,缩小加载,网络图片可以考虑服务器动态压缩图片尺寸。Bitmap使用完毕要及时释放。 缓存的...原创 2018-07-03 22:51:05 · 569 阅读 · 0 评论 -
Android Stogage
Your data storage options are the following:Shared PreferencesStore private primitive data in key-value pairs.Internal StorageStore private data on the device memory.External StorageStore public data ...翻译 2018-06-28 16:04:04 · 194 阅读 · 0 评论 -
Android Studio发布项目到Maven仓库注意事项
参考:https://blog.csdn.net/H_Zhang/article/details/51558800注意:1、在buildscript->dependencies中添加如下代码:jcenter-push.gradle里面的两个插件需要用到classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'classpa...原创 2018-06-15 15:53:48 · 231 阅读 · 0 评论 -
Android爬坑之旅之FileProvider(Failed to find configured root that contains)
最近在测试FileProvider相关功能的时候,在从自定义相册选择图片通过FileProvider来获取content uri的时候程序突然崩溃了,报出了Failed to find configured root that contains xxxx1的错误,一开始以为是自己的配置出错了,但是参照官方文档改来改去仍然没有任何作用,通过绞尽脑汁地排查,终于发现了错误原因,并找到了正确的解决方案,...转载 2018-05-28 16:46:07 · 653 阅读 · 0 评论 -
安卓开发中非常炫的效果集合
这几天开发的时候,想做一些好看而且酷炫的特效,于是又开始从网上收集各种特效资源。下面给大家一些我喜欢的把,附代码,喜欢的看源代码,然后加到自己项目去把!! 一个开源项目网站有很多炫酷效果 http://itlanbao.com/codes.aspx#1,0所有效果Dome下载地址:https://github.com/20994842/A-collection-of-Android-de转载 2017-12-17 21:34:14 · 334 阅读 · 0 评论 -
使用getBackground().setAlpha,导致其他布局背景透明度都改变的问题
最近在做的项目包含了一个标题栏,可随着ScrollView滑动而改变自身透明度。使用的正是getBackground().setAlpha来实现,在Android 5.0以下版本一直没问题,但在5.0以上系统时,就会导致其他共用一个资源的布局(例如:@color/white)透明度都跟对标题栏被改变了。LinearLayout xmlns:android="http://schemas.an转载 2017-12-20 09:46:25 · 248 阅读 · 0 评论 -
以圆心散开的半圆菜单
刚开始做Android的时候曾经遇到过一个这样的需求,半圆形菜单,从圆心处向外散开,收回。当时一看就蒙了,最后被牛人给实现了。昨天突然想起了这个需求,就想自己实现下,顺便也复习下Android知识。效果如下:这是一个自定义控件,首先,想要实现这个效果,需要了解View的绘制过程,即对onMeasure、onLayout、onDraw这个几个方法要有所了解。建议查看郭老大的帖原创 2014-03-27 13:58:08 · 1501 阅读 · 0 评论 -
Intent 常见跳转用法
Intent 常见跳转用法,不断添加 /** * 携带指定号码跳转到拨号界面 * @param phoneNum */ private void dial(String phoneNum){ Intent intent = new Intent(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:"+phoneNum));原创 2014-04-01 12:00:10 · 1282 阅读 · 0 评论 -
Android调用系统选择联系人,适合更多种手机,Google官方推荐
跳转到系统联系人选择界面,获取相应联系人信息调用方式:Intent i = new Intent();i.setAction(Intent.ACTION_PICK);i.setData(ContactsContract.Contacts.CONTENT_URI);startActivityForResult(i, 1);下面是onActivityResult(int requ原创 2013-01-09 11:37:39 · 3485 阅读 · 1 评论 -
GitHub上的优秀开源项目--继续整理中
直接拿来用!最火的Android开源项目(一)http://www.csdn.net/article/2013-05-03/2815127-Android-open-source-projects直接拿来用!最火的Android开源项目(二)http://www.csdn.net/article/2013-05-06/2815145-Android-open-source-pr原创 2014-03-27 12:00:35 · 1568 阅读 · 0 评论 -
Android Asynchronous Http Client
官网:http://loopj.com/android-async-http/概述:一个 在众多Apache HttpCilent 库中排名靠前的为Android开发的基于异步回调的HttpClient。所有的请求都在你的App的UI线程之外,但是所有的回调逻辑将会在这个CallBack被创建的线程上执行,这与Handler Message处理过程相同。特征:1、创原创 2014-04-04 14:37:41 · 1379 阅读 · 0 评论 -
Android 适配工作
Android 适配工作笔记随手记得笔记,记了个大概,想到了再补充1、dp、sp这个不用说了2、尽量使用RelativeLayout,现在Google已经推出了PercentRelativeLayout、PercentFrameLayout这两种可以按百分比定义子控件的布局,有兴趣可以搜下,貌似很流弊3、图片一般是选择一套高分辨率的,放在xxhdpi文件夹下,在布局中用到图片的原创 2015-07-14 19:17:22 · 564 阅读 · 0 评论 -
可拖拽排序的GridView
根据两位大神的代码整理了下 1)可以拖动排序,Adapter里面复用了convertView,但是拖动过程中的动画不是很理想 2)找不到在哪了,但是拖动中的动画还不错直接上代码了1、DragViewpublic class DragGridView extends GridView { /** * DragGridView的item长按响应原创 2015-07-14 18:51:14 · 786 阅读 · 0 评论 -
Android armeabi armeabi-v7a
Android armeabi armeabi-v7a拣主要的来了:理论上仅在armeabi文件夹下生成so文件即可在所有的arm处理器机型上运行,终于找到一点权威的资料了下文红色字体的意思是:没有在armeabi-v7a下生成so文件,但又在这种CPU类型的机器上运行,则会出现很多离奇的、无法解释问题。原文地址:http://docs.xamarin原创 2014-03-17 15:06:51 · 15220 阅读 · 0 评论 -
Android读取assests目录下文件
随手记录下来,以后直接用,不用再搜了 private void readFromAssets(String fileName){ try { InputStream in = getAssets().open(fileName); readTextFile(in); } catch (IOException e) { e.printStackTrace(); }原创 2014-04-29 14:04:34 · 2824 阅读 · 0 评论