Android Studio
写给 Android 开发者的混淆使用手册
点击打开链接 毫无疑问,混淆是打包过程中最重要的流程之一,在没有特殊原因的情况下,所有 app 都应该开启混淆。 首先,这里说的的混淆其实是包括了代码压缩、代码混淆以及资源压缩等的优化过程。依靠 ProGuard,混淆流程将主项目以及依赖库中未被使用的类、类成员、方法、属性移除,这有助于规避 64K 方法数的瓶颈;同时,将类、类成员、方法重命名为无意义的简短名称,增加
清理无用的 Android 项目资源
项目长期的积累,就会造成部分资源不在使用,而这些资源还存在项目中没有被清理掉,这些无用资源只会占空间毫无用处。如何清理这些这些无用的资源呢?下面介绍下一个工具的使用,Andorid Lint 是 SDK Tools 16(ADT 16) 之后提供的一个工具,可以对于 Android 项目…
Android 图片压缩框架 - Tiny
图片压缩
Fragment 与 Activity 之间的相互通信
Fragment 与 Activity 之间的相互通信
android 消息传递机制进阶EventBus的深入探究
以前,对于activity和fragment之间的通信可以使用接口的方式,定义起来比较麻烦费事,偶然间发现可以使用EventBus,发现很好用,查看了一下官方说明:EventBus是针一款对Android的发布/订阅事件总线。它可以让我们很轻松的实现在Android各个组件之间…
如何让你的 app 在后台被干掉后优雅的重新启动
作为一个 Android 开发者,肯定会遇到这样的一种情况,用户在玩着你开发的 app 时,突然有微信来消息了,切换到了微信,然后还在微信逗留看视频啊,聊天啊,刷朋友圈啊等等的,你所开发的 app 就出于后台了,这个时候就很容易出现手机内存不足,app 被内存回收干掉的情况了,等用户终于聊完天,刷完朋友圈,回来 app 的时候,就会进行 app 的自我恢复了,如果开发者处理不好,就会出现崩溃的情况了,而且肯定会出现返回的时候一瞬间白屏,然后再显示出来,这样的用户体验非常的不好。那我们应该怎样去解决这样的状况呢?扯了那么多,我们的文章就正式开始啦!
一句代码搞定 ViewPager 的水平滑动和竖直滑动
支持水平方向上滑动和竖直方向上的滑动,直接修改的官方提供的 ViewPager 的源码,注入了方向判断,使用起来和官方的 ViewPager 基本一样,还有监听事件也是一样的,支持 setOffscreenPageLimit() 可以放心滑动。
自定义 View 动画和 ViewPager 动画效果以及手势操作开源
自定义 View 动画和 ViewPager 动画效果以及手势操作基础练习,效果拔群~~
Android 下的悬浮窗权限兼容库
Android 下的悬浮窗权限兼容库
给初学者的RxJava2.0教程(一)
Outline [TOC] 前言 上个月RxJava2正式版发布了,但目前国内的资料还比较少,以前使用过RxJava1只需要看看更新文档就知道怎么使用了,但还有一些以前没用过RxJava的朋友可能就不知道怎么办了,不知道该看RxJava1还是直接跳到RxJava2。所以写下这个…
一个类实现自定义圆形、圆角矩形 View
日常开发中,常要用圆角矩形或者圆形来显示头像,今天我们一个类搞定圆角矩形和圆形 View 的展示,同时支持自定义边框大小、边框颜色、按下态蒙层颜色等,当然你也可以根据你的需求定义成支持各种形状(椭圆、Path 等)及其他属性;
图片自动轮播 Banner, 触摸停止播放,放开恢复
图片自动轮播 Banner, 触摸停止播放,放开恢复
Android 开发实现自定义日历、日期选择控件
Android 实现自定义日历、日期选择控件,方法通俗易懂,简单明了
Android自定义控件滑动开关自定义滑动验证
滑动验证码效果实现
android 省市区三级联动
android 省市区三级联动
android bluetooth——蓝牙的开启、搜索、配对与连接
Android 的 blt 仅仅支持 api 18 android4.3 以上,有的功能甚至需要 api 19 android4.4;
所以我们在做 blt 项目之前一定要清楚可用的版本范围。
我要讲述的是打开 blt 大门的操作。这些操作就是如何打开 blt、如何搜索到其他设备、如何配对选中设备、如何通过 mac 地址连接之前已经配对过的设备以及连接成功的两个(或一对多个)设备如何通讯。
Android 如何签名
Android 如何签名
安卓Property Animator动画详解(二)-自定义属性
安卓系统的默认属性 安卓系统中提供了一系列的属性动画供你使用,常用的包括: 属性名称 描述 X 在父容器(非屏幕)的距离左侧的距离,即X轴的距离 Y 在父容器(非屏幕)的距离顶部的距离,即Y轴的距离 scaleX X轴方向的缩放,Y轴大小不变,从中间向两侧或者从两侧向中间 sc…
MVP 开发的正确姿态
MVP:
V 层处理 UI 视图操作;P 层实现业务逻辑操作(有设计需要的时候,核心业务甚至可以写到一个核心的 P 里面去);M 层为数据仓库,后台管理数据来源与数据控制,数据是来自网络、数据库、SP、缓存,示例:你可能会需要这样一个实现,一个数据列表,不需要实时性,但是需要给网络情况有问题时的用户提升用户体验,需要使用网络数据 + 本地缓存数据机制,那么,都可以统一在这个数据仓库做处理,代码逻辑层次很清晰,你应该会喜欢上这个设计。
V-P 之间的调用方式采取依赖倒置原则,俗话就是使用抽象接口(回调);P 与 V,代码写多了,其实会发现,V 可以正常的调用 P,P 则要尽量少调用 V,或者使用 DataBinding,数据的变化使用绑定方式;P 与 M,M 只与 P 做沟通,数据一般来自后台延时操作,这块也就是使用 RxJava 情况较多的地方,网络请求可以尝试使用 ReTrofit。一般情况下,一个 V 对应一个 P,而 P 和 M,会出现一个 P 对应多个 M 的情况(M 的接口多了,或许会把 M 按模块创建)。
教你实现最简单的 QQ 消息 item 侧滑菜单
跟大家介绍怎么简单的实现类似 QQ 消息 Item 的左右滑动菜单的实现
Android 之高仿 QQ6.6.0 侧滑效果(背景动画、透明 + 沉浸式状态栏、渐变效果)
Android 使用官方的 DrawerLayout 实现 QQ 侧滑效果,支持沉浸式状态栏
了解 Android ANR
前言:本文所写的是博主的个人见解,如有错误或者不恰当之处,欢迎私信博主,加以改正!原文链接,demo 链接 合理编写在世界各地获得性能测试的代码,但仍然觉得缓慢,挂起或冻结很长时间,或者花费太长的时间来处理输入。应用程序响应速度最糟糕的是 “应用程序无响应”(ANR)对话框。 在 A…
Android 获取 View 宽高的常用正确方式,避免为零
相信有很多朋友都有过在 Activity 中通过 getWidth() 之类的方法获取 View 的宽高值,可能在 onCreate() 生命周期方法中,也可能在 onResume() 生命周期方法中。然而,不幸的是,并不能获取所要的结果,宽高值均为 0。 如果对 View 的…
【译】使用 APK Analyzer 分析你的 APK
Android Studio 2.2 包含了 APK Analyzer,通过它我们能够直观地看到 APK 的组成。使用 APK Analyzer 不仅能够减少你花在 debug 上的时间,而且还能减少你的 APK 大小。
带你高效学习 MVP+RxJava+Retrofit
罗列出本人学习 这三者和 lambda 表达式时 所看过的不错的文章或项目
关于 Android RecyclerView 的那些开源 LayoutManager
Google 默认为 RecyclerView 提供了 LinearLayoutManager、StaggeredGridLayoutManager、GridLayoutManager,已经可以满足很多开发需求了,但是实际开发过程中,免不了出现一些更加新颖的交互设计。于是,便从 Github 上整理了一波关于 RecyclerView 可以使用的 LayoutManager,在实际开发中需要用到时,遇到相似的效果时即可随手拈来,提高效率。
提供侧滑操作的控件——SlipperyLayout
这是一款提供侧滑功能的 ViewGroup,可以设置它的滑动方向:左、右、上、下。 另外,它也解决了滑动冲突的问题,所以你可以把它放在你的 RecyclerView 或者 ListView 中。
强烈推荐 Android Studio 插件
Android Studio 插件
给初学者的RxJava2.0教程(二)
Outline [TOC] 前言 上一节教程讲解了最基本的RxJava2的使用, 在本节中, 我们将学习RxJava强大的线程控制. 正题 还是以之前的例子, 两根水管: RxJava 正常情况下, 上游和下游是工作在同一个线程中的, 也就是说上游在哪个线程发事件, 下游就在哪…
在 Android Studio 上调试数据库 ( SQLite )
以前 Eclipse 时代,调试 SQLite 都是将数据库文件导出到电脑,然后再用软件打开查看。现在我们用 Android Studio,有没有更方便的方法呢? SQLScout 安装 SQLScout 是一个 Android Studio 的插件,通过点击: Setting…
Android 做下拉刷新的时候,在做些什么
Android 下拉刷新几种实现方式的思考。
android 阿里面试题锦集
前几天突然就经历了阿里 android 实习内推的电面,感觉有好多以前看过的东西都忘记了,然后又复习了一下,找了很多阿里的面经总结了一下,希望对大家有帮助,下面的知识点大多出自 android 开发艺术探索,而且很多都是我自己的总结,方便自己记忆,如果想深入可以去看看这本书。
Android 动画
Android 动画
Android 动画总结——View 动画、属性动画、帧动画
Android 动画总结——View 动画、属性动画、帧动画
自定义侧边快速索引栏
现在有通讯录的项目基本都会用到侧边快速索引栏,如何简单自定义一个?
教你如何用 RecyclerView 做一个好用的轮播图
引子 一般情况下,我们手机 App 上轮播图一般都是几张图来回循环,最多也就10几张,一般都是在10张以内的轮播。所以我们一般可能都是自己写,还有可能用到了别人写的第三方库。由此可能由于图片轮播数量不大,所以没有考虑复用机制,以致于放上百张图片或者上千张图片轮播时,导致应用崩溃…
要换工作? 来看看面试题吧
今天要谈的主题是关于求职. 求职是在每个技术人员的生涯中都要经历多次, 对于我们大部分人而言, 在进入自己心仪的公司之前少不了准备工作, 有一份全面细致面试题将帮助我们减少许多麻烦. 在跳槽季来临之前, 特地做这个系列的文章, 一方面帮助自己巩固下基础, 另一方面也希望帮助想要换工作的朋友.
Android Studio 配置 SVN - Android 初学者 - 博客频道 - CSDN.NET
Android Studio 配置 SVN - Android 初学者 - 博客频道 - CSDN.NET
一款基于 MVP+RxJava2+Retrofit2+Picasso+DiskLruCache 的应用——熊猫眼
简介 熊猫眼是一个平时用来学习的练手的项目,做这样一个应用的目的主要有两个: 公司项目因为历史原因还有风险控制方面的问题,新的技术不一定能够应用在现有的版本上。所以手痒了就自己弄个应用写一写,持续的更新增加自己的技能熟练度。同时也把坑踩一踩,以后用到的时候可以少走绕路。 像之前…
适配悬浮窗权限与系统设置修改权限
Github: https://github.com/czy1121/se...: http://reezy.me/2016-12-25/an... Android 6.0 的特殊权限 (Special Perm…
DownloadManager - 下载文件新姿势
使用系统自带 DownloadManager 来完成下载
BaseActivity 的封装思想
一个好的封装会让我们的开发事半功倍。
从未如此惊艳!你好,SuperTextView(v1.4)
欢迎使用 SuperTextView,这篇文档将会向你展示如何使用这个控件来提高你构建项目的效率。
Android面试题收集
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。这里会不断收集和更新Android基础相关的面试题,目前已收集100题。 1.Android系统的架构 Android系统架构之…
仅使用一张资源图片为 View 设置具有按下效果的背景 - OneDrawable
仅使用一张资源图片为 View 设置具有按下效果的背景
RecyclerView的新机制:预取(Prefetch)
RecyclerView 新机制
ANDROID 高仿微信拍照与视频拍摄(Camera+TextureView+rxjava)
ANDROID 高仿微信拍照与视频拍摄(Camera+TextureView+rxjava)
LeakCanary 傻瓜式的内存泄露检测工具
在开发 Android 应用的过程中如果需要处理图片或者大量数据的时候,就有可能会遇到 OOM(java.lang.OutOfMemoryError), 一般出现最多的是在创建 Bitmap 上,也有可能是在内存中处理了大量的数据上。出现 OOM 应用会直接崩溃,即使没有出现 OOM, 内存使用过…
20 分钟理解 React Native For Android 原理
公司内几个 APP 已经接入并上线了多个 RN 模块,后续规划的定制化需求及性能优化需要我们对 RN 底层原理有更深入的理解。下面通过研读源代码来分析和总结下 Android 中的 RN 实现原理。
仿 QQ 未读消息气泡,可拖拽删除,粘连效果。
仿 QQ 未读消息气泡,可拖拽删除,粘连效果。
安卓推送这件小事
今天来讲讲推送这件小事,事虽小,要做好却不容易。 推送难,难于上青天。 我们在讨论 Android 手机上的推送时,大多数情况是在说集成第三方推送,因为即使是像微信这样的大厂,也需要厂商加到启动白名单里才能保持在线。 iOS 手机使用 APNs(Apple Push Notif…
一个支持竖向滚动的 Android ViewPager 实现
Android 原生 ViewPager 只支持了横向滚动,目前有一些竖向滚动的实现方式都是通过 hack 布局容器的 onInterceptTouchEvent 方法实现,但是没有能够很好地解决 ViewPager 与内部 View 的滚动事件冲突 (可以对比淘宝等电商 app 的商品详情页实现在 iOS 和 Android 上滚动的区别)。VerticalViewPager-chad 利用 ViewPager 的 fakeDrag 特性,并通过内部 View 的 OnTouchListener 处理 / 模拟事件分发,可以很好地支持 ViewPager 与内部竖向滚动 View 的组合使用。
我所理解的 RxJava——上手其实很简单(二)
RxJava 系列,持续更新 ···
Android 简单实现侧滑删除功能
利用 ViewDragHelper 优雅实现侧滑删除功能,代码简洁,效果不错,适应于任何 View。
Rxjava+Retrofit+MVP MD 风格 的阅读类 APP
Rxjava+Retrofit+MVP MD 风格 的阅读类 APP
史上最全面的 Android Studio 配置指南总结 - 包括护眼模式
使用 Android Studio 开发 APP 已有半年多的时间了,从刚开始的不习惯到慢慢适应再到逐渐喜欢上 Android Studio,中间的过程颇有一番曲折,现在把自己对 Android Studio 的配置心得总结下来,分享给大家,希望给后来人带来方便。
要换工作? 还不来看看面试题?
马上就要到三月份这个跳槽季了, 来看看面试题吧.
Android ImageView 的 scaleType 属性图解
ImageView 是 Android 中最常用的控件之一,而在使用 ImageView 时,必不可少的会使用到它的 scaleType 属性。该属性指定了你想让 ImageView 如何显示图片,包括是否进行缩放、等比缩放、缩放后展示位置等。Android 提供了八种 scaleType 的属性值,每种都对应了一种展示方式,下面就对每一种 scaleType 属性值进行图文解释。
教你瘦身 zxing(android)
android 二维码扫描是 APP 中常见的功能,最近闲余时间比较多,特意去研究了下,分享出来,欢迎大家一起交流。
Android 代码混淆入门篇
- 对 Android 代码怎么开启混淆做一个简单的介绍。
- 对混淆规则做一个简单介绍;
- 在混淆过后 Crash 日志反推代码工具 retrace.bat、可视化反推工具 GUI 说明。