自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

七号座先生的博客

Mobile Internet developer 【 新博客 https://zhigang.online/】

  • 博客(72)
  • 收藏
  • 关注

原创 前端开发都应该知道的配置中心

前端开发都应该知道的配置中心动态化方案一般都是比较大型的, 比如react native 、flutter 等都是从UI,运行逻辑等多方面完整的动态更新。但实际上,移动端还有很多细粒度的配置类数据需要支持动态更新的。比如某一个文案或者广告的位置希望可以根据用户表现来随时改动,又比如你开开发了一个线上功能,但上线后才发现里面潜藏了一个严重的问题, 希望可以同过一个线上开关立即关闭此功能。这一类...

2019-07-18 16:47:37 8228

原创 设置简单好用的Android Studio

前言:Android Studio版本已经更新到2.0 Preview4版本,ADT谷歌也不会再更新了,大家还有什么理由不更换更好用的IDE呢?不用老守着Eclipse ,Android Studio或许会是你最好选择。第一次使用Android Studio 或多或少都是有点不习惯,可当你正在接触之后并且慢慢上手了你就会对它爱爱爱不完,甚至你都会忘记还有之前还有Eclipsed的存

2015-12-23 14:34:36 12481 7

原创 Android-快速实现ViewPager+Tablayout的联动效果

Android-快速实现ViewPager+Tablayout的联动效果在项目开发中很多场景都会碰到tab栏切换的效果,实现的思路也有很多种,tabhost+fragment,radionbtton+viewpager等方式都可以实现,这里就说下tablayout+viewpager的实现方式;tablayout是android5.0推出来的一个MaterialDesign风格的控件,是专门用...

2018-07-26 16:46:34 2409

原创 Homebrew使用介绍

Homebrew使用介绍https://brew.sh/Homebrew可以很好的下载并管理Mac上软件包,使软件包的管理清晰、灵活了很多。安装 Homebrew一行代码即可安装:$/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/instal

2018-01-17 10:20:44 526

原创 学习JavaScript语言的闭包

学习JavaScript语言的闭包闭包(closure)是JavaScript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。一,变量的作用域要理解闭包,首先必须理解JavaScript特殊的变量作用域。变量的作用域无非就是两种,全局变量和局部变量JavaScript语言的特殊之处,就在于函数内部可以直接读取全局变量。 var n=999;

2018-01-16 10:44:13 286

原创 JavaScript中将变量转为字符串

“”+value:将value与空字符相加,即可将其转换为字符串,这种方法其实是一种稍微晦涩的技巧,可能会让别人难于理解开发者的意图。不过,这一点见仁见智,有些人偏爱这种方法。String(value):这种方法非常清晰:使用String()函数将value转换为字符串。不过,String()有两种不同用法,容易混淆,尤其对于JAVA开发者来说。 当String()和运算符new 一起作为构造函

2018-01-16 10:36:17 3778

原创 npm install 的实现原理

npm install 的实现原理?输入npm install 命令并敲下回车后,会经历如下几下阶段(以npm5.5.1为例):执行工程自身preinstall当前npm 工程如果定义了perennial钩子此时会被执行。确定首层依赖模块首先需要做的是确定工程中的首层依赖,也就是dependencies 和 devDependencies属性中直接指定的模板(假设此时没

2018-01-16 10:30:36 14695

原创 【node.js】一个基于HTPP的服务

构建应用的模块基于HTTP服务器当我准备开始写一个我的第一个”真正的“node.js应用的时候,我不但不知道怎么写node.js代码,也不知道该怎么组织这些代码。我应该把所有东西都放进一个文件里吗? 网上有很多教程都会教你把所有的逻辑内容都放进一个用node.js写的基础HTTP服务器里。但是如果我想加入更多的内容,同事还想保持代码的可读性呢?实际上,只要把不同功能的代码放如不

2018-01-16 10:26:49 318

原创 Node.js的文件系统

Node.js的文件系统JavaScript的是没有操作文件的能力,但是Node.js是可以做到的。 Node.js提供了操作文件的接口,但是接口有太多。主要使用一些常用的接口。文件系统模块是一个封装了标准的 POSIX 文件 I/O 操作的集合。通过 require(‘fs’) 使用这个模块。所有的方法都有同步和异步两种模式。Node.js的文件系统API1.读取文件 N

2018-01-16 10:23:13 207

原创 Node.js基础用法

Node.js基础用法学一门语言,其实就是需要知道,他能做啥。那么Node能做啥?node.js能做啥NodeJS的作者说,他创造NodeJS的目的是为了实现高性能Web服务器,他首先看重的是事件机制和异步IO模型的优越性,而不是JS。但是他需要选择一种编程语言实现他的想法,这种编程语言不能自带IO功能,并且需要能良好支持事件机制。JS没有自带IO功能,天生就用于处理浏览器中的DO

2018-01-16 10:21:31 295

原创 Node.js发展史

Node.js介绍近年来,随着前端的丰富,前后端分离是趋势。各种东西如雨后春笋一般,层出不穷。node.js的出现,是前端真正意义上变成了大前端。Node.js的发展史众所周知,在Netscape设计出JavaScript后的短短几个月,JavaScript事实上已经是前端开发的唯一标准。后来,微软通过IE击败了Netscape后一统桌面,结果几年时间,浏览器毫无进步。(200

2018-01-16 10:19:14 954

原创 Android 适配18:9全面屏

2017年是全面屏爆发的大热潮,18:9屏幕的相拥而来,在使用18:9等非传统16:9的手机之后,部分手机应用出现了上下黑边。解决方案:1.设置 Android:resizeableActivity# compileSdkVersion 需要设置为 24以上,不然报错 resizeableActivity 属性不存在compileSdkVersion : 24# appl

2018-01-08 16:27:19 7315

原创 【Android开发技巧】android6.0动态获取权限,运行时权限处理

随着Android6.0的发布,也带来了一些变革,这里主要说的就是在Android6.0里面运行时权限的处理。关于运行时权限在旧的权限管理系统中,权限仅仅在App安装时询问用户一次,用户同意了这些权限App才能被安装(某些深度定制系统另说),App一旦安装后就可以偷偷的做一些不为人知的事情了。在Android6.0开始,App可以直接安装,App在运行时一个一个询问用户授予权限,系

2018-01-08 11:03:47 12771

原创 【Android开发技巧】 关于Webview拍照或从相册上传图片处理总结

前言: 各公司为了处理更多的业务流程, 一般都会加入H5与原生交互处理,方便快速开发,迭代项目。但,在Android中,H5与原生的交互处理的就没有iOS那么好。其中适配也是一个问题,Android系统版本众多,国内手机开发商都各自定制自家的系统,所以适配起来的话,也是一个不小的工作量。本文就总结一下我本人在公司项目使用到Webview中上传图片的处理。WebView 上传图片, 想必很多人

2018-01-05 10:58:51 1756 2

原创 【Android开发技巧】在Activity页面中如何实现Fragment数据的缓加载

简述:渐渐的在开发道路上更注重App的性能, 数据的预加载的处理。在日常开发APP,一个Activity里面有可能会是有Viewpager与多个Fragment来进行组合,而如果每个Fragment都需要通过网络加载数据,或加载本地缓存。 如果当前Activity创建的时候就需要初始化大量的资源,需要网络加载,从服务器loding。这样的结果,我们也不会同意。那如何才能更好的处理这个问题呢?

2018-01-05 10:39:26 1147

原创 【Android开发技巧】利用ViewPager,打造不一样的广告(月度账单)轮播切换效果

简述:目前公司项目开发过程中,我负责的模块有涉及到一些页面UI需要用到类似Banner图轮播的效果,结合之前在公众号平台看过有类似实现的方式,然后在结合自身项目的需求,做了一些修改,使用到公司项目中来,本文只是做一些总结,积累。 效果图: 本文是利用ViewPager做类似风格的Banner图 。 引入: compilecom.zhy:magic-viewpager:1.0.1

2018-01-05 10:36:03 292 1

原创 【教程】手把手教你使用Git

前言: 公司从17年渐渐从SVN 转向Git 版本控制系统,以下是平时使用过程中的总结。一,Git 是什么? Git 是目前世界上最先进的的分布式版本控制系统。二,SVN 和Git 的最主要的区别 SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本

2017-01-09 15:13:25 594

原创 Android开源项目-Glide

Glide是一个Android图片加载库,由Goodle维护相关文档官方文档: https://github.com/bumptech/glide Gradlerepositories { mavenCentral() // jcenter() works as well because it pulls from Maven Central}dependencies { compile

2017-01-04 14:20:43 599

原创 【Android】关于Android控件架构的一些总结

前言: Android中的每个控件都会在界面中占得一块区域,控件一般分为两类, 一个是ViewGroup控件,另一就是View控件。ViewGroup控件作为父控件可以包括多个View控件,并管理其包含的View控件。通过ViewGroup,整个界面上的控件形成了一个树形结构,这也就是我们常说的控件树,上层控件负责下层控件的测量和绘制,并传递交互事件。下图展示的是一个View视图树。通常情况下,在A

2016-11-26 22:14:54 593

原创 关于Webview拍照或从相册上传图片处理总结

前言:各公司为了处理更多的业务流程, 一般都会加入H5与原生交互处理,方便快速开发,迭代项目。但,在Android中,H5与原生的交互处理的就没有iOS那么好。其中适配也是一个问题,Android系统版本众多,国内手机开发商都各自定制自家的系统,所以适配起来的话,也是一个不小的工作量。本文就总结一下我本人在公司项目使用到Webview中上传图片的处理。WebView 上传图片, 想必很多人都碰到过这

2016-11-25 10:32:35 2980

原创 【关于适配】华为手机PopupWindow弹出时背景不变暗 或者 华为手机PopupWindow背景一闪一闪问题处理

前言: 项目开发中遇到关于PopupWindow适配性的问题,特别是在华为手机上显示就会出现类似的情况。下面这段PopupWindow弹出时背景变暗效果的代码在网上随处可见:private void setBackgroundAlpha(float bgAlpha){ WindowManager.LayoutParams layoutParams = MainActivity.t

2016-11-11 12:02:45 2154

原创 Android6.0以下系统判断相机权限

前言简述: 关于Android权限检测问题 在6.0系统以后由于使用的是动态权限 很好判断 关键是6.0之前的系统发现没有可用的API来获取相应的权限是否被用户禁用或者允许使用。其中有相应的checkPermission()方法 但是这些方法只是判断清单文件中是否注册过此类权限。用户的操作是获取不到的。PackageManager packageManager = getPackageManag

2016-11-03 15:03:42 2777

原创 Android开发中的Tips

前言:收录项目中使用过的可复用的代码块。1,双击退出public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { if ((System.currentTimeMillis() - ex

2016-10-02 21:10:02 494

原创 【Android控件】之EditText的基本用法

EditText简介: ED(EditText的简称)在开发中也是经常使用到的一个控件, 也是一个比较重要的组件,可以说它是用户跟应用进行数据传输的窗口,比如实现一个登陆界面, 需要用户输入账号和密码,然后我们开发者获取到用户输入的内容,提交给服务区进行判断再做相应的处理。EditText 支持的XML 属性及相关方法:setText(CharSequence text) 设置文本内容setTex

2016-09-05 10:50:30 3979

原创 Android Studio Multidex 解决方法数超65k限制

前言: 首先说下安卓项目的方法数是不能超过65k限制的,不然编译的时候就会有报错提示,这也是很大一部分使用Eclipse转向Android Studio 的原因之一,很不幸的我也中奖了,因为旧项目的各种开源各种lib,导致方法数爆炸了只能转向AS。下面仅仅记录下使用AS编译器Gradle进行Multidex分包的过程,看到的可以少走弯路;1.在 App 的 gradle 里面加上如下脚本,会自动在

2016-09-03 23:20:08 1382

原创 【干货集中营App】

前言:一个练手的安卓app ,Api接口来源:http://gank.io/api,非常感谢代码家。应用描述:干货集中营是一个技术干货共享平台。每个工作日,网站都会分享一些技术干货信息,包括Android、iOS、App等技术干货,除此之外还有福利和休息视频可供你享用。 如果你是移动开发者,这个App一定很适合你。当然,如果你是一个宅男,也许你会对每天的福利更感兴趣。Enjoy it。本项目学习Rx

2016-08-25 10:56:04 10234

原创 Android 设计模式之-单例模式

单列模式介绍:单列模式是应用最广的模式之一,也可能是很多初级工程师唯一会使用的设计模式。在应用这个模式时,单列对象的类必须保证一个实例存在,许多时候整个系统只需要拥有一个全局对象,这也有利于我们协调系统整体的行为, 如在一个应用中,应该只有一个ImageeLoader 实例,这个ImageLoader 中又含有线程池,缓存系统,网络请求等,很消耗资源,因此,没有理由让它构造多个实例。这种不能自由构造

2016-08-24 16:01:26 388

原创 Android Webview Java和Javascript安全交互

最近项目中要获取网页页面源代码的参数,传统的addJavascriptInterface 方法存在一定的安全隐患,所以研究一下Java 和JavaScrip的安全交互。Android Webview漏洞① 成名已久的任意命令执行漏洞,通过addJavascriptInterface方法,Js可以调用Java对象方法,通过反射机制,Js可以直接获取Runtime,从而执行任意命令。Android 4.

2016-08-24 10:51:48 1789

转载 【转】Android事件分发机制完全解析,带你从源码的角度彻底理解(上)

文章转自:http://blog.csdn.net/guolin_blog/article/details/9097463其实我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客开始,就零零散散在好多地方使用到了Android事件分发的知识。也有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单

2016-08-23 11:51:53 440

原创 【Android】Webview 如何使用SwipeRefreshLayout下拉刷新

前言: 在android开发中,使用最多的数据刷新方式就是下拉刷新了,而完成此功能我们使用最多的就是第三方的开源库PullToRefresh。现如今,google也忍不住推出了自己的下拉组件SwipeRefreshLayout,下面我们通过api文档和源码来分析学习如何使用SwipeRefreshLayout。一, SwipeRefreshLayout的具体用法 1、setOnRefreshLi

2016-08-03 08:48:14 3373

原创 关于RxJava学习总结

关于RxJava学习总结一 ,RxJava 到底是什么? 一个词语: 异步。 RxJava 在GitHub主页上的自我介绍就是”a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 Java VM 上使用可观测的序列来组成异步的、基

2016-07-15 22:06:55 752

原创 【ANDROID布局问题总结】Activity启动后EditText是否自动弹出输入法虚拟键盘的问题

在开发过程中,我们经常会遇到Activity中包含EditText控件时会自动弹出虚拟键盘的情况,这是由于EditText自动获得焦点的缘故,只要让EditText失去焦点就行了,解决办法如下:1、在Manifest.xml文件中相应的Activity下添加如下代码:android:windowSoftInputMode="stateHidden"2、让EditText失去焦点,用EditText

2016-05-11 16:13:43 1029

原创 【教程】Android Studio 入门

前言 随着谷歌停止对ADT的更新,更多的安卓开发者已经从eclipse 转到了android studio 的开发环境中,本文主要介绍一下如何快速的对android studio 入门。 设置更好用的android studio 可与参考我之前的这篇文章-【设置简单好用的Android Studio】。本文适用于从Eclipse转AndroidStudio的开发者1,下载JDK ,并配置HOME_

2016-04-14 10:57:02 493

原创 Android-利用Uri获取返回的参数即getQueryParameter()方法的使用

项目有可能需要截取Url 链接中参数时,最好不要利用处理String的手段来做,可以方便地使用URI达到目的. 步骤如下: 1 将String类型的URL转变为URI 2 利用URI的getQueryParameter方法获取参数例如在一个URL中需要获取appid和userId 过程如下: Uri uri = Uri.parse(url); String appid= uri.get

2016-03-30 12:42:17 21045 1

原创 Android多屏幕适配

基本概念:(1) px : 像素(pixel)设备上的物理像素点。 (2)dp : 根dip是同一个概念,与屏幕物理像素点无关,而是基于屏幕密度抽象单位,被称作为:“设备独立像素”,会随着屏幕的密度进行自动的大小调整。 (3)sp : 专用于文字大小的设置, 可根据字体大小首选项进行缩放。 (4) inch : 英寸, 1英寸等于2.54厘米。 (5) dpi : 屏幕像素密度,单位英寸

2016-03-01 13:12:29 623

原创 Android 日常开发总结的技术经验

1 ,全部Activity可继承BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整理变动, 可以做到一处修改,到处有效。2,数据库表段字段常量和SQL逻辑分离, 更清晰,建议使用Lite系列架构 LiteOrm库,超级清晰且重心可以放在业务上不用关心数据库细节。3,全局变量可以放在全局类中,模块私有放自己的管理类中, 让常量清晰且集中。4,不要太相信庞大的

2016-03-01 11:48:01 560

原创 Android-SQLiteOpenHelper使用示例

我们大家都知道Android平台提供给我们一个数据库辅助类来创建或打开数据库,这个辅助类继承自SQLiteOpenHelper类,在该类的 构造器中,调用Context中的方法创建并打开一个指定名称的数据库对象。继承和扩展SQLiteOpenHelper类主要做的工作就是重写以下两个 方法。(1)当数据库被首次创建时执行该方法,一般将创建表等初始化操作在该方法中执行。onCreate(SQLiteD

2016-02-26 14:32:24 2935

转载 React-Native的学习指南

【本文转载】本指南汇集React-Native各类学习资源,给大家提供便利。指南正在不断的更新,大家有好的资源欢迎Pull Requests!同时还有Awesome React-Native系列https://github.com/jondot/awesome-react-native教程:React NativeReact-Native入门指南 https://github.com/vczero

2016-02-26 09:27:54 1066

原创 Android开发-Touch事件分发响应机制

(1)概述 Android中的TouchEvent通常包含三个动作,ACTION_DOWN,ACTION_MOVE与ACTION_UP。发出去的顺序是DOWN->MOVE->UP (注意MOVE事件是否能够被触发取决于操作手势是否包含了移动的动作。)消息分发流程,从上到下,从父到子:Activity->ViewGroup1->ViewGroup1的子ViewGroup2->…->Target Vi

2016-02-22 11:24:55 546

原创 Android开发-优秀博客参考

1,郭霖的专栏 http://blog.csdn.net/guolin_blog2,Trineahttp://www.trinea.cn/3,老罗的Android之旅http://blog.csdn.net/luoshengyang4,张兴业的博客http://blog.csdn.net/xyz_lmn5,小米系统开发工程师 http://gityuan.com/

2016-02-22 10:41:51 917

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除