
Android相关
七号座先生
这个作者很懒,什么都没留下…
展开
-
前端开发都应该知道的配置中心
前端开发都应该知道的配置中心动态化方案一般都是比较大型的, 比如react native 、flutter 等都是从UI,运行逻辑等多方面完整的动态更新。但实际上,移动端还有很多细粒度的配置类数据需要支持动态更新的。比如某一个文案或者广告的位置希望可以根据用户表现来随时改动,又比如你开开发了一个线上功能,但上线后才发现里面潜藏了一个严重的问题, 希望可以同过一个线上开关立即关闭此功能。这一类...原创 2019-07-18 16:47:37 · 8540 阅读 · 0 评论 -
【Android控件】之EditText的基本用法
EditText简介: ED(EditText的简称)在开发中也是经常使用到的一个控件, 也是一个比较重要的组件,可以说它是用户跟应用进行数据传输的窗口,比如实现一个登陆界面, 需要用户输入账号和密码,然后我们开发者获取到用户输入的内容,提交给服务区进行判断再做相应的处理。EditText 支持的XML 属性及相关方法:setText(CharSequence text) 设置文本内容setTex原创 2016-09-05 10:50:30 · 4052 阅读 · 0 评论 -
【干货集中营App】
前言:一个练手的安卓app ,Api接口来源:http://gank.io/api,非常感谢代码家。应用描述:干货集中营是一个技术干货共享平台。每个工作日,网站都会分享一些技术干货信息,包括Android、iOS、App等技术干货,除此之外还有福利和休息视频可供你享用。 如果你是移动开发者,这个App一定很适合你。当然,如果你是一个宅男,也许你会对每天的福利更感兴趣。Enjoy it。本项目学习Rx原创 2016-08-25 10:56:04 · 10330 阅读 · 0 评论 -
Android Studio Multidex 解决方法数超65k限制
前言: 首先说下安卓项目的方法数是不能超过65k限制的,不然编译的时候就会有报错提示,这也是很大一部分使用Eclipse转向Android Studio 的原因之一,很不幸的我也中奖了,因为旧项目的各种开源各种lib,导致方法数爆炸了只能转向AS。下面仅仅记录下使用AS编译器Gradle进行Multidex分包的过程,看到的可以少走弯路;1.在 App 的 gradle 里面加上如下脚本,会自动在原创 2016-09-03 23:20:08 · 1452 阅读 · 0 评论 -
Android 设计模式之-单例模式
单列模式介绍:单列模式是应用最广的模式之一,也可能是很多初级工程师唯一会使用的设计模式。在应用这个模式时,单列对象的类必须保证一个实例存在,许多时候整个系统只需要拥有一个全局对象,这也有利于我们协调系统整体的行为, 如在一个应用中,应该只有一个ImageeLoader 实例,这个ImageLoader 中又含有线程池,缓存系统,网络请求等,很消耗资源,因此,没有理由让它构造多个实例。这种不能自由构造原创 2016-08-24 16:01:26 · 433 阅读 · 0 评论 -
Android Webview Java和Javascript安全交互
最近项目中要获取网页页面源代码的参数,传统的addJavascriptInterface 方法存在一定的安全隐患,所以研究一下Java 和JavaScrip的安全交互。Android Webview漏洞① 成名已久的任意命令执行漏洞,通过addJavascriptInterface方法,Js可以调用Java对象方法,通过反射机制,Js可以直接获取Runtime,从而执行任意命令。Android 4.原创 2016-08-24 10:51:48 · 1858 阅读 · 0 评论 -
【转】Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
文章转自:http://blog.youkuaiyun.com/guolin_blog/article/details/9097463其实我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客开始,就零零散散在好多地方使用到了Android事件分发的知识。也有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单转载 2016-08-23 11:51:53 · 468 阅读 · 0 评论 -
【Android】Webview 如何使用SwipeRefreshLayout下拉刷新
前言: 在android开发中,使用最多的数据刷新方式就是下拉刷新了,而完成此功能我们使用最多的就是第三方的开源库PullToRefresh。现如今,google也忍不住推出了自己的下拉组件SwipeRefreshLayout,下面我们通过api文档和源码来分析学习如何使用SwipeRefreshLayout。一, SwipeRefreshLayout的具体用法 1、setOnRefreshLi原创 2016-08-03 08:48:14 · 3530 阅读 · 0 评论 -
关于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 · 798 阅读 · 0 评论 -
Android项目及编码的规范
文件的命名类的命名 命名应该遵循驼峰命名法 对于继承自Android组件的类来说,命名是应以改组件的名称结尾;列如:SingInActivity, SingInFragment , ImageUploaderService,ChangePasswordDialog .Res中文件的命名 资源文件应该以小写+下划线(_)的格式命名。图片文件 以下是对于图片文件的命名习惯 对于图标的命名习原创 2016-01-26 10:10:32 · 614 阅读 · 0 评论 -
【教程】Android Studio 入门
前言 随着谷歌停止对ADT的更新,更多的安卓开发者已经从eclipse 转到了android studio 的开发环境中,本文主要介绍一下如何快速的对android studio 入门。 设置更好用的android studio 可与参考我之前的这篇文章-【设置简单好用的Android Studio】。本文适用于从Eclipse转AndroidStudio的开发者1,下载JDK ,并配置HOME_原创 2016-04-14 10:57:02 · 548 阅读 · 0 评论 -
【ANDROID布局问题总结】Activity启动后EditText是否自动弹出输入法虚拟键盘的问题
在开发过程中,我们经常会遇到Activity中包含EditText控件时会自动弹出虚拟键盘的情况,这是由于EditText自动获得焦点的缘故,只要让EditText失去焦点就行了,解决办法如下:1、在Manifest.xml文件中相应的Activity下添加如下代码:android:windowSoftInputMode="stateHidden"2、让EditText失去焦点,用EditText原创 2016-05-11 16:13:43 · 1080 阅读 · 0 评论 -
Android-SQLiteOpenHelper使用示例
我们大家都知道Android平台提供给我们一个数据库辅助类来创建或打开数据库,这个辅助类继承自SQLiteOpenHelper类,在该类的 构造器中,调用Context中的方法创建并打开一个指定名称的数据库对象。继承和扩展SQLiteOpenHelper类主要做的工作就是重写以下两个 方法。(1)当数据库被首次创建时执行该方法,一般将创建表等初始化操作在该方法中执行。onCreate(SQLiteD原创 2016-02-26 14:32:24 · 3000 阅读 · 0 评论 -
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 · 1117 阅读 · 0 评论 -
设置简单好用的Android Studio
前言:Android Studio版本已经更新到2.0 Preview4版本,ADT谷歌也不会再更新了,大家还有什么理由不更换更好用的IDE呢?不用老守着Eclipse ,Android Studio或许会是你最好选择。第一次使用Android Studio 或多或少都是有点不习惯,可当你正在接触之后并且慢慢上手了你就会对它爱爱爱不完,甚至你都会忘记还有之前还有Eclipsed的存原创 2015-12-23 14:34:36 · 12588 阅读 · 7 评论 -
Android6.0以下系统判断相机权限
前言简述: 关于Android权限检测问题 在6.0系统以后由于使用的是动态权限 很好判断 关键是6.0之前的系统发现没有可用的API来获取相应的权限是否被用户禁用或者允许使用。其中有相应的checkPermission()方法 但是这些方法只是判断清单文件中是否注册过此类权限。用户的操作是获取不到的。PackageManager packageManager = getPackageManag原创 2016-11-03 15:03:42 · 2839 阅读 · 0 评论 -
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 · 540 阅读 · 0 评论 -
Android-快速实现ViewPager+Tablayout的联动效果
Android-快速实现ViewPager+Tablayout的联动效果在项目开发中很多场景都会碰到tab栏切换的效果,实现的思路也有很多种,tabhost+fragment,radionbtton+viewpager等方式都可以实现,这里就说下tablayout+viewpager的实现方式;tablayout是android5.0推出来的一个MaterialDesign风格的控件,是专门用...原创 2018-07-26 16:46:34 · 2471 阅读 · 0 评论 -
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 · 7397 阅读 · 0 评论 -
【Android开发技巧】android6.0动态获取权限,运行时权限处理
随着Android6.0的发布,也带来了一些变革,这里主要说的就是在Android6.0里面运行时权限的处理。关于运行时权限在旧的权限管理系统中,权限仅仅在App安装时询问用户一次,用户同意了这些权限App才能被安装(某些深度定制系统另说),App一旦安装后就可以偷偷的做一些不为人知的事情了。在Android6.0开始,App可以直接安装,App在运行时一个一个询问用户授予权限,系原创 2018-01-08 11:03:47 · 12877 阅读 · 0 评论 -
Android开发-优秀博客参考
1,郭霖的专栏 http://blog.youkuaiyun.com/guolin_blog2,Trineahttp://www.trinea.cn/3,老罗的Android之旅http://blog.youkuaiyun.com/luoshengyang4,张兴业的博客http://blog.youkuaiyun.com/xyz_lmn5,小米系统开发工程师 http://gityuan.com/原创 2016-02-22 10:41:51 · 967 阅读 · 0 评论 -
【Android开发技巧】 关于Webview拍照或从相册上传图片处理总结
前言: 各公司为了处理更多的业务流程, 一般都会加入H5与原生交互处理,方便快速开发,迭代项目。但,在Android中,H5与原生的交互处理的就没有iOS那么好。其中适配也是一个问题,Android系统版本众多,国内手机开发商都各自定制自家的系统,所以适配起来的话,也是一个不小的工作量。本文就总结一下我本人在公司项目使用到Webview中上传图片的处理。WebView 上传图片, 想必很多人原创 2018-01-05 10:58:51 · 1855 阅读 · 2 评论 -
【Android开发技巧】利用ViewPager,打造不一样的广告(月度账单)轮播切换效果
简述:目前公司项目开发过程中,我负责的模块有涉及到一些页面UI需要用到类似Banner图轮播的效果,结合之前在公众号平台看过有类似实现的方式,然后在结合自身项目的需求,做了一些修改,使用到公司项目中来,本文只是做一些总结,积累。 效果图: 本文是利用ViewPager做类似风格的Banner图 。 引入: compilecom.zhy:magic-viewpager:1.0.1原创 2018-01-05 10:36:03 · 332 阅读 · 1 评论 -
【Android开发技巧】在Activity页面中如何实现Fragment数据的缓加载
简述:渐渐的在开发道路上更注重App的性能, 数据的预加载的处理。在日常开发APP,一个Activity里面有可能会是有Viewpager与多个Fragment来进行组合,而如果每个Fragment都需要通过网络加载数据,或加载本地缓存。 如果当前Activity创建的时候就需要初始化大量的资源,需要网络加载,从服务器loding。这样的结果,我们也不会同意。那如何才能更好的处理这个问题呢?原创 2018-01-05 10:39:26 · 1282 阅读 · 0 评论 -
【教程】手把手教你使用Git
前言: 公司从17年渐渐从SVN 转向Git 版本控制系统,以下是平时使用过程中的总结。一,Git 是什么? Git 是目前世界上最先进的的分布式版本控制系统。二,SVN 和Git 的最主要的区别 SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本原创 2017-01-09 15:13:25 · 648 阅读 · 0 评论 -
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 · 676 阅读 · 0 评论 -
【Android】关于Android控件架构的一些总结
前言: Android中的每个控件都会在界面中占得一块区域,控件一般分为两类, 一个是ViewGroup控件,另一就是View控件。ViewGroup控件作为父控件可以包括多个View控件,并管理其包含的View控件。通过ViewGroup,整个界面上的控件形成了一个树形结构,这也就是我们常说的控件树,上层控件负责下层控件的测量和绘制,并传递交互事件。下图展示的是一个View视图树。通常情况下,在A原创 2016-11-26 22:14:54 · 638 阅读 · 0 评论 -
关于Webview拍照或从相册上传图片处理总结
前言:各公司为了处理更多的业务流程, 一般都会加入H5与原生交互处理,方便快速开发,迭代项目。但,在Android中,H5与原生的交互处理的就没有iOS那么好。其中适配也是一个问题,Android系统版本众多,国内手机开发商都各自定制自家的系统,所以适配起来的话,也是一个不小的工作量。本文就总结一下我本人在公司项目使用到Webview中上传图片的处理。WebView 上传图片, 想必很多人都碰到过这原创 2016-11-25 10:32:35 · 3086 阅读 · 0 评论 -
【关于适配】华为手机PopupWindow弹出时背景不变暗 或者 华为手机PopupWindow背景一闪一闪问题处理
前言: 项目开发中遇到关于PopupWindow适配性的问题,特别是在华为手机上显示就会出现类似的情况。下面这段PopupWindow弹出时背景变暗效果的代码在网上随处可见:private void setBackgroundAlpha(float bgAlpha){ WindowManager.LayoutParams layoutParams = MainActivity.t原创 2016-11-11 12:02:45 · 2222 阅读 · 0 评论 -
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 · 617 阅读 · 0 评论 -
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 · 21341 阅读 · 1 评论 -
Android开发-加载公用布局(如公用标题栏)
前言: 目前越来越多的activity页面都会在页面的头部加载一个标题栏,为了减少重复代码,修改样式方便。所以就简单的来说说如何在当前页面的头部加载一个公用的布局头部文件。 效果如下图: 具体实现如下:1,新建一个布局文件 public_header 布局文件。<?xml version="1.0" encoding="utf-8"?><!-- 顶部信息栏 --><RelativeLayo原创 2016-02-17 09:46:13 · 5267 阅读 · 1 评论 -
Android——支付宝SDK调用(移动应用接入支付宝支付,提供安全、便捷的支付能力)
前言随着智能设备的快速发展,O2O行业的普及,移动支付这一块成了我们生活中不可或缺的一部分, 从支付宝到微信支付,这一路走来,见证了移动互联网时代的快速发展的步伐。详细说说APP中如何调用支付宝支付。准备工作1,需要开发者到支付宝的开发者平台注册申请,提交相关资料审核,审核通过后会获得合作者ID(PID)。接口申请url2,下载支付包集成开发包。支付宝集成开发包原创 2015-11-09 17:06:28 · 4581 阅读 · 0 评论 -
Android-利用LinearGradient实现文字一闪一闪
效果如下图所示: 具体实现方式如下:1,自定义一个LinearGradientTextView 继承 TextView ,重写onSizeChanged和onDraw。:public class LinearGradientTextView extends TextView { private int mViewWidth; private Paint mPaint; pr原创 2016-01-22 09:51:46 · 1430 阅读 · 0 评论 -
Android——仿微信公众号文章页面加载进度条
前言:微信公众号文章详情页面加载的时候,WebView会在头部显示一个进度条,这样做的好处就是用户可以一边加载网页内容的同时也可浏览网页内容,不需要等完全加载完之后才全部显示出来。如何实现呢? 其实很简单,自定义一个WebView就可以实现了。详细实现步骤如下 :1,自定义一个ProgressWebView 继续 Webview @SuppressWarnings("deprecation")pu原创 2016-01-20 15:29:42 · 3163 阅读 · 0 评论 -
Android开源项目——EventBus
简介:EventBus 是一个 Android 事件发布/订阅框架,通过解耦发布者和订阅者简化 Android 事件传递,这里的事件可以理解为消息,本文中统一称为事件。事件传递既可用于 Android 四大组件间通讯,也可以用户异步线程和主线程间通讯等等。传统的事件传递方式包括:Handler、BroadCastReceiver、Interface 回调,相比之下 EventBus 的原创 2015-10-28 10:43:29 · 509 阅读 · 0 评论 -
Android——ButterKnife--View注入框架
前言本文中大部分示例都是Butter Knife官网直接拿来的,本文就是官方翻译版加了很少量的说明。可以直接去官网看教程 。官网及文档:http://jakewharton.github.io/butterknife/ GitHub地址:https://github.com/JakeWharton/butterknife 加入android studio 项目中(目前我使用的原创 2015-11-13 11:04:35 · 1336 阅读 · 0 评论 -
Android ——网络请求框架OkHttp使用
前言Android系统提供了两种HTTP通信类, 一个是 HttpURLConnection 和 HttpClient .尽管Google在大部分安卓版本中推荐是使用HttpURLConnection ,但这个类相比HTTPClient实在是太难用了.OkHttp是一个相对比较成熟的解决方案,据说Android4.4的源码中可以看到HttpURLConnection 已经替换成了原创 2015-11-09 10:08:06 · 1143 阅读 · 0 评论 -
深入讲解Android—WebView
正文作为Android开发者 ,我们都知道安卓手机上内置了一款高性能的webkit内核浏览器,在android SDK中封装了一个叫WebView的控件。在应用开发过程中我们应该需要注意几点:1.在AndroidManifest.xml文件中添加相应的权限。2.如果访问的页面中有JavaScript,则需要设置webview 支持JavaScript。 WebView.getS原创 2015-09-22 10:39:10 · 1862 阅读 · 0 评论 -
利用Bundle实现Activity之间的数据传递。
在Activity中通过Intent跳转到另外的Activity时,如果希望同时能够传递数据,则可以利用bundle,先将数据放到bundle对象中,然后为Intent添加该bundle对象,这样就实现了参数的批量添加, Intent intent = new Intent(); intent.setClass(EX03_10.this,EX03_原创 2014-03-04 21:47:51 · 992 阅读 · 0 评论