201705-06 Android工作经验之开发技术分享 1.全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效。2.数据库表段字段常量和SQL逻辑分离,更清晰,建议使用Lite系列框架LiteOrm库,超级清晰且重心可以放在业务上不用关心数据库细节。3.全局变量放全局类中,模块私有放自己的管理类中,让常量清晰且集中.4.不要相信庞大的管理类的东西会带来什么好处,可能是一场灾难,而要... 继续阅读 >
201705-02 Android的滑动分析以及各种实现 一、滑动效果的产生滑动一个View,本质区别就是移动一个View。改变当前View所在的坐标,原理和动画相似不断改变坐标位置实现。实现View的滑动就必须监听滑动的事件,并且根据事件传入的坐标,动态且不断改变View的坐标,从而实现View跟随用户触摸的滑动而滑动。(1)、Android的坐标系Android中将屏幕最左上角的顶点作为Android坐标系的原点,从这个点向右是X轴正方向,从这个点向下是Y轴正方向,如下图:系... 继续阅读 >
201705-02 Android全套动画使用技巧 一、AndroidView动画框架Animation框架定义了透明度、旋转、缩放和位移几种常见的动画,控制的整个View,实现原理是每次绘制视图时View所在ViewGroup中的drawChild函数获取该View的Animation的Transformation值,然后调用canvas.concat(transformToApply.getMatrix()),通过矩阵运算完成动画帧。如果没有完成就继续调用invalidate()函数,启动下次绘制来驱动动画,从而完成整个动画的绘制。视图动画使用简单,效... 继续阅读 >
201703-25 Android应用安全风险与防范 Hello,大家好,我是Clock。最近一段时间在做Android应用安全方面的功课,本文进行简单梳理方便以后Review,有错误和遗漏之处还请大家指出。代码混淆Android开发除了部分功能采用C/C++编码外,其余主要都是采用Java进行编码开发功能。Java应用非常容易被反编译,Android自然也不例外。只要利用apktool等类似的反编译工具,就可以通过安装包获取源代码。Google为了保护开发者的知识产权,为Android提供了ProGuard混淆方... 继续阅读 >
201702-22 作为 Android 开发者必须了解的 Gradle 知识 在Android开发中,很多时候我们不需要修改*.gradle文件太多,我们添加依赖、修改targetcompile、最低支持APIlevel,或者修改签名配置和build类型。其它更复杂一些逻辑,我们最后可能就是从StackOverflow中copy了一些自己也不太懂的代码。本文中我们将一步一步介绍Android工程中用到的gradle文件及其背后的原理。1.Groovy1.1语法Gradle文件其实是用Groovy脚本写的,我们都会写java,所以入门Groovy非常简单。... 继续阅读 >
201702-18 你可能不知道 Google 最近的「小动作」 了解我的人知道,我是一名不折不扣的G粉,一直在关注Google,最近Google有一些小动作,可能很多人不太了解,借这个机会,给大家普及下。而且断断续续有人问我一些这样的问题,比如:Android的前景怎么样?我想学习编程,到底学什么更好呢?移动互联网已经走下坡路了,下一个风口是什么呢?对于Google的一些动作,我有一些思考以及自己的看法,分享给你们,很可能看完之后以上问题就有答案了。PWA... 继续阅读 >
201702-09 如何随apk一起打包并使用SQLite 背景开发环境macOS:Sierra10.12.1SQLite:3.9.2JDK:1.8.0_77shell:zsh对应源码:shakeba:https://github.com/bihe0832/ShakebaSQLiteSQL语法https://www.tutorialspoint.com/sqlite/sqlite_data_types.htm准备数据库创建数据表创建DB文件在shell中输入下面的命令创建db.➜1sqlite3shakeba.dbSQLiteversion3.9.22... 继续阅读 >
201702-09 Android应用瘦身,从18MB到12.5MB 开篇语前阵子老大交给了我一个任务,主要是帮我们开发的直播应用做Android端的安装包瘦身,花了大概一周的时间把安装包从18MB减小到了12.5MB。原本完全可以优化到10MB之下,但由于其他原因的限制,所以目前阶段只到12.5MB为止。在此记录一下优化的思路和用到的工具,方便自己以后Review,有需要的童鞋也可供参考。瘦身的目的从目的导向来看,我们是不会无缘无故去做一件事情的,那我们对应用瘦身的目的... 继续阅读 >
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... 继续阅读 >