201701-16 6 个可以让代码变得更整洁的 Android 库 Android开发是有趣的——这毫无疑问。然而,还是有很多平台迫使我们编写重复的样板代码。很多时候这都与需要你处理的UI组件相关。有一些确实是你需要的,当你希望你的应用程序架构能够干干净净的时候。有很多操作在后台异步执行;事实上,最后很容易成为一堆意大利面条似的代码,不可读或者就是让人感觉不正确。今天,我们将看看6个可以帮助保持代码清晰和可读性的Android库,并且使用示例项目以方便你可以看到库的作用。... 继续阅读 >
201701-16 Android性能优化之被忽视的优化点 对于性能优化这个知识点来说,实在是太广了,博主本人也一直非常关注这方面的学习,而对于性能优化来说它包括了非常非常非常多方面,比如:I/O的优化、网络操作的优化、内存的优化、数据结构的优化、代码层次的优化、UI渲染优化、CPU资源使用率的优化、异常处理的优化等等等等。。。本篇文章就博主本人的理解来讲述一些在Android开发中可以优化的地方ArrayList和VectorArrayList和Vector都是内部以数组实现的Li... 继续阅读 >
201701-03 一个简单的网速显示悬浮窗 2016转眼就要过去了,刚刚参加完学院举办的元旦晚会,看了看系里的大牛的各种事迹,内心感慨万分。回来继续安心做我的小码农,顺便更一下将近一个月没有更新的博客。这次带来的是一个悬浮窗网速显示计,先看下效果:demo这里主要是在桌面上显示一个悬浮窗,利用了WindowManager以及Service,接下来看看如何实现这样一个效果:首先APP必须获得在桌面上显示悬浮窗的机会,很多第三方ROM都限制了这一权限,我们... 继续阅读 >
201701-03 一道经典的Android面试题 摘要今天,给各位分享一个很有意思,而且非常经典的Android面试题。试题引入题目:原Activity启动一个新Activity,然后关闭这个新Activity回到原Activty,在这个过程中这两个Activity的生命周期经历了怎样的变化?很多面试者给出了这样的答案:activity_error.png答案真的如此吗?╮( ̄▽ ̄)╭相信一些有经验的老司机们已经开始笑了~其实,这是一个很简单的问题,打印一下Log日志就知道... 继续阅读 >
201612-30 Android开发必知的java嵌套类 嵌套类指定义在另一个类的内部的类,嵌套类的存在只是为了他的外围类。嵌套类有四种:静态成员类,非静态成员类,匿名类,局部类。静态成员类是最简单的一种嵌套类。最好把它看做是一个普通的类,只是恰好定义在另一个类的内部。静态成员类可以访问外围类的所有成员,包括那些私有的变量。静态成员类同样遵守可访问性规则,如果将它定位私有,它就指在外围类的内部才能访问到。在Android中最为熟悉lis... 继续阅读 >
201612-19 安卓下的刮刮卡摸奖的实现 效果如下:呱呱卡开奖前呱呱卡开奖后实现思路一张呱呱卡有三层,最底层我用一个TextView控件显示中奖内容,中间层是刮完之后的显示图样,最上面一层是刮刮卡的封面。手指刮除封面的过程就是把刮刮卡最上面一层裁剪的过程。涉及的知识点canvas.clipPath(),Path类,Region.Op类onDraw方法和onTouchEvent方法的配合核心代码如下:publicclassLotteryViewextendsView{p... 继续阅读 >
201612-08 史上最全解析Android消息推送解决方案 前言消息推送在Android开发中应用的场景是越来越多了,比如说电商产品进行活动宣传、资讯类产品进行新闻推送等等,如下图:推送消息截图本文将介绍Android中实现消息推送的7种主流解决方案目录目录1.定义在用户未打开App时,App主动向用户推送服务器最新消息。如下图:消息推送的本质是:App将服务器更新的信息推送给用户2.作用产品的角度:功能... 继续阅读 >
201612-08 Android通用标题栏组合控件 由于项目中经常用到此种组合控件,就封装了下,具体效果看下图,老司机可以绕道哈!Image.png一、主要功能支持左右图标动态设置支持左右、中间文字动态修改支持字体大小、颜色修改支持左右图标,左中右文字隐藏显示支持左右图标和文案的点击监听二、基本使用方式<com.example.android.customvView.CustomNavigatorBarandroid:id="@+id/customView"android... 继续阅读 >
201612-08 Android 混淆从入门到精通 简介作为Android开发者,如果你不想开源你的应用,那么在应用发布前,就需要对代码进行混淆处理,从而让我们代码即使被反编译,也难以阅读。混淆概念虽然容易,但很多初学者也只是网上搜一些成型的混淆规则粘贴进自己项目,并没有对混淆有个深入的理解。本篇文章的目的就是让一个初学者在看完后,能在不进行任何帮助的情况下,独立写出适合自己代码的混淆规则。说在前面这里我们直接用AndroidStudio来说明如何进... 继续阅读 >
201612-06 在线看Android系统源码,相见恨晚的几种方案 前言:最近在研究MediaCodec,u盘坏了,之前下载的源码也就自然没有了,真是个难过的事情,不能因为没有源码了,就阻挡我的计划了呀,于是就是今天一文,在线看Android源码,加之此前很多人也有向我留言,如何看android系统的源码,今天来敲黑板,划重点了。不管是做Android底层开发,还是做应用层开发,在Android这条路上走下去,必须对于Android源码够了解,如某一个功能,某一个机制,或者某一个API,它到底是如何实现... 继续阅读 >
201612-06 Android APK 更新之路 一、前言提到APK更新,大家可能会想到友盟(umeng)更新,市场上已有数万款应用在使用友盟自动更新的服务。但友盟于2016年10月15日起停止了更新服务。那么我们需要自己处理APK更新的业务。本篇主要讲解以下知识点:使用DownloadManager更新基于RxJava和retrofit扩展的Android线程安全http请求库下载APK更新热更新(AndFix)我们来啾啾第一个知识点。Downlo... 继续阅读 >
201612-06 Android 反编译初探 应用是如何被注入广告的 一、概述最近和朋友聊天,发现一些灰色产业链通过批量反编译市场上的apk,然后进行注入广告,再重新打包上渠道。我想大家都不希望自己家的产品或者自己的app那么容易被“占据”,但是想要自身能够防御,首先要知道对方的手段。所以本篇博客的目的不是教大家如何破解别人的app,而是让大家提升安全防御意识,对我们的应用做一些必要的防护,让自己的app不会那么容易被“占领”。因为是初探,也不需要掌握太多的技术... 继续阅读 >
201612-02 Android控件布局属性全解(必看必会) Android功能强大,界面华丽,但是众多的布局属性就害苦了开发者,下面这篇文章结合了网上不少资料.第一类:属性值为true或falseandroid:layout_centerHrizontal水平居中(Hrizontal表示水平)android:layout_centerVertical垂直居中(Vertiacl表示垂直)android:layout_centerInparent相对于父元素完全居中android:layout_alignParentBottom贴紧父元素的下边缘(align表示使什么成为一行)andro... 继续阅读 >
201611-29 Android路由实现 好了,下面进入今天的主题,前几个月有幸参加了CSDN组织的MDCC移动开发者大会,一天下来我最大的收获就是了解到了模块化开发,回来之后我就一直在思考模块化的一些优点,不说别的,提供一种可插拔的开发方式就足够我们兴奋一会了~接下来自己开始尝试了一些小demo,发现在模块化开发中最大的问题就是组件间通讯,例如:在模块化架构中,商城和个人中心分别是两个独立的模块,在开发阶段,个人中心如何想要跳转商城的某个页面咋... 继续阅读 >
201611-29 Android手把手教你实现搜索框 前言像下图的搜索功能在Android开发中非常常见搜索功能今天我将手把手教大家如何实现具备历史搜索记录的搜索框目录1.使用场景在敲下代码前,理解用户的功能使用场景是非常重要的,这样有助于我们更好地去进行功能的实现,使用场景如下:用户需要进行某类事物的搜索(通过文字输入进行精确搜索)在搜索框输入时,通过显示搜索历史从而降低用户二次搜索的成本简单来说,就是输入过... 继续阅读 >
201611-29 Android 沉浸式状态栏及悬浮效果 一、概述现在大多数的电商APP的详情页长得几乎都差不多,几乎都是上面一个商品的图片,当你滑动的时候,会有Tab悬浮在上面,这样做用户体验确实不错,如果Tab滑上去,用户可能还需要滑下来,在来点击Tab,这样确实很麻烦。沉浸式状态栏那,郭霖说过谷歌并没有给出沉浸式状态栏这个明白,谷歌只说了沉浸式模式(ImmersiveMode)。不过沉浸式状态栏这个名字其实听不粗,随大众吧,但是Android的环境并没有IOS环境一样特... 继续阅读 >