文章目录

Full Screen Developer

全屏(栈)工程师

Gradle 使用技巧(一) 有更新!

Gradle是使用Groovy语言构建,所以既然是语言,那么就有他的语法,而不是简单的配置项。关于Gradle有时间会出一系列的文章。

Http响应码含义

做为一位开发者,工作中在所不免的会和网络打交道,了解响应码和对应所代表的意义,会给我们的开发带来极大的便利,也能减少自己闹的一些笑话。

App登陆首页适配 有更新!

实现APP登陆页面输入框居中。

Gradle之强制依赖某个第三方库 有更新!

#前言 在之前的一个项目中,compileSdkVersion和targetSdkVersion都是使用的24,都是使用最新的,紧跟潮流嘛,一直是相安无事。直到有一天接入一个第三方的SDK的时候,问题暴露了:第三方SDK仅仅只支持最大22的编译,23及以上他本身的SDK就会直接崩溃。没办法,只能降级项目中的编译版本来兼容他了。这一降,才知道不是那么好办的。 1.创建项目 如上图所示,创建了一个项目,compileSdkVersion、targetSdkVersion都是22,并且引用了一个appcompat-v7:22.2.1包。 2.提升引用appcompat-v7版本 看下图,将v7包提升到了23.2.1,就直接爆出了一个错误。 这个错误,如果单单只是在我们自己的项目中出现,还是很好解决的,要么降低v7的版本和sdk一致,要么就提升sdk版本和v7保持一致。但是,有得时候所引用的v7是在我们引用的开源库中引用的,我们自己的sdk不能提升,也不能修改开源库中的引用版本。 3.其他开源库appcompat-v7高版本 为了方便,我就自己创建了一个library并引用了,并且在lib….

Gradle构建变种(一份源码,多份APK) 有更新!

需求 一份源码,修改API地址,包名,替换桌面图标和一些其他资源文件,生成不同的APK卖给不同的人。 ##PS 篇幅略长,但是绝对全是干货 解决方案 为解决这个问题,我经历了以下三个阶段: 需要几份APK就copy几份源码进行修改。 将整个项目作为module来引用。 使用Gradle的Product Flavors来构建变种。 第一种方案:需要几份APK就copy几份源码进行修改 这是早期做Android开发,仍然是EC横行的时候,很痛苦,需要几份就复制几份,开始简单,但是后期维护 却是特别的痛苦。原因是当出现一个BUG的时候需要修改多次,虽然说修改完成一份,后面只需要复制黏贴,但是也是痛苦,可以想象一下,被繁琐的事情缠绕。 第二种方案:将整个项目作为module来引用 这是我接触到了AS,当时考虑的就是将整个项目改造成为module,创建不同的主项目来引用同一份源码,最终改造到一半,不可行,因为要修改大量的代码,比如: 1. ID不再是final类型的了,switch view.id 之类的方法不能再使用。 第三种方案:使用Gradle的Product Flavors来构….

Linux-JDK安装与配置环境搭建 有更新!

#JDK安装 首先,更新包: yum update 检查服务器上是否已安装旧版本的Java: java -version ##下载安装JDK 前往Oracle Java下载页面,根据你的系统架构找到合适的版本。比如我的系统是Centos 6 x86,找到jdk-8u102-linux-i586.rpm,复制其下载地址,在服务器中下载: wget –no-cookies –no-check-certificate –header “Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie” "http://download.oracle.com/o 在你下载的目录中执行rpm包安装命令: rpm -ivh jdk-8u102-linux-i586.rpm ##环境变量设置 在/etc/profile.d/路径下新建一个文件,名为java.sh: vim /etc/profile.d/java.sh 写入以下语句: #!/bin/bash JAVA_HOM….

Centos 6下MySQL安装与配置 有更新!

卸载掉原有mysql 查看是否安装mysql rpm -qa | grep mysql  // 是否已经安装了mysql数据库 卸载mysql yum remove mysql mysql-server mysql-libs mysql-server; find / -name mysql// 将找到的相关东西delete掉; rpm -qa|grep mysql//(查询出来的东东yum remove掉) 安装 获取可以安装的版本 yum list | grep mysql 自动安装 yum install -y mysql-server mysql mysql-deve 查看刚安装好的mysql-server的版本 rpm -qi mysql-server 配置 启动服务: service mysqld start 开机自启: chkconfig mysqld on chkconfig –list | grep mysql 设置密码: mysqladmin -u root password ‘root’  // 通过该命令….

Centos下 Nginx安装与配置 有更新!

第一步,在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo: cd /etc/yum.repos.d/ vim nginx.repo 填写如下内容: [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1 保存,则会产生一个/etc/yum.repos.d/nginx.repo文件。 下面直接执行如下指令即可自动安装好Nginx: yum install nginx -y 安装完成,下面直接就可以启动Nginx了: /etc/init.d/nginx start 现在Nginx已经启动了,直接访问服务器就能看到Nginx欢迎页面了的。 如果还无法访问,则需配置一下Linux防火墙。 iptables -I INPUT 5 -i eth0 -p tcp –dport 80 -m state –state NEW,ESTABLISHED -j ACCEPT service iptables….

Android初级进阶之自定义果冻视图(BouncingJellyView)(二) 有更新!

啰嗦废话 本篇为Android初级进阶之自定义果冻视图(BouncingJellyView)(一)的后续篇章。没有看过的赶紧去看看,顺便点个喜欢。 BouncingJellyView 果冻视图,就像果冻一样伸缩弹跳,也叫阻尼效果。这个效果在MIUI上面到处都可以看到。 上一篇文章到现在的间隔已经是足足的三个月时间了,因为期间在待业中,所以没什么心情来写文章,所以拖到了现在,找着了工作,解决了其中的一些小问题,才开始写文章。 我现在的公司是做自己的产品,而且是从零到有得一个过程,所以我会把我在做项目的过程中遇到的问题解决方案及一些自定义的UI控件写成文章和demo,希望大家多多star,多多关注,也为能为我将来增加一些砝码。 效果图 废话不多说 先整两张效果图 区别 上个版本所留下的BUG,应该没有人发现。我这里描述一下:在5.0以上使用ToolBar的时候,不管是上拉还是下拉都是没有问题的,但是在5.0以下的时候就很糟糕了,下拉没有问题,但是上拉却是会遮挡ToolBar,如下图所示: 上个版本中,要使用对应的BouncingJelly才能够达到效果,但是在这个版本中,只需….

Android开发小技巧之不再使用原生的WebView了 有更新!

前言 先来说说Android官方的WebView的版本差异,在Android 4.4以下(不包含4.4)系统WebView底层实现是采用WebKit作为内核,而在Android 4.4及其以上Google 采用了chromium作为内核,虽然是API上面没有什么变化,但是却非常的坑开发者。虽然说更换了chromium之后,是增加了对H5等的一些友好支持,但是还不够啊,各种各样的内存泄露。我也是醉了。而且这种内存泄露还是没办法解决的。 刚开始的时候啥都不懂,认为WebView这那点东西,简单。慢慢的发现:哦,原来webView也是要清除和销毁的啊。哦,原来是WebView内部内存泄露了啊,没办法只能将WebView放进一个单独的进程了。我以为这样就能解决我的问题。 诱因 当时的问题是这样的,我们项目需要用WebView来展示一个url,里面呢,是web版的百度地图。结果就是IOS正常显示,我这边就是不行,于是我各种重写,各种注入JS。最终还是失败了。最后是在微信和UC中查看这个URL,发现真神奇,竟然可以。不知道大家有没有仔细观察,不管是QQ还是微信,打开URL的时候往下拉,都可以看到这….