- 博客(103)
- 资源 (28)
- 收藏
- 关注
原创 Android开发偷懒技巧之阴影
在Android开发中我们会在设计稿中看到各种阴影效果,我们知道CardView可以添加阴影效果,不过可能并不是我们设计稿想要的效果,那我们如何可以更加灵活地给我们原生控件添加阴影效果,这就是下面所要描述的,当然也可以让设计师给个阴影切图,我们做下.9处理然后使用切图实现阴影效果。下面看看如何用代码更灵活地去为原生控件实现阴影效果,源码可以查看 XSelector GitHub, 也可移步【...
2019-05-09 09:30:44 369
原创 App版本更新接口的设计
工作这几年碰到的版本检测升级的接口也算是五花八门,啥样的都有,但肯定有的功能是有个apk的下载链接,能间接或直接提示你是强制还是非强制更新:- 间接是指提供你后台最新版本号,让你自己与本地版本号通过比较得出是否升级;- 直接就是后台接口直接返回个Boolean类型告诉你是强制或者非强制更新。个人认为一个好的版本检测接口需要设计的更灵活更清晰用起来更方便,下面就我理解的接口设计如下(如思路有误,欢迎...
2018-05-10 23:28:53 5814
原创 Android开发偷懒技巧之XSelector
平时我们在开发项目时看到设计稿中有各种对控件设置在不同状态下显示不同的背景(边框、颜色等)样式或者不同的文字显示颜色等效果,这时候我们就需要在项目的resource目录下的drawable中创建对应的Selector.xml文件然后通过setBackground方法设置到对应的控件中以显示想要的效果。如果项目中的效果一直,只采用一两种样式效果还好,我们只需建立一两个selectro.xml文件即可...
2018-05-05 10:32:46 1287
原创 APP插件化/组件化框架分析
VirtualAPK插件框架简单使用如感觉排版看着不舒服,可移步【APP插件化/组件化框架分析】。最近一段时间在研究插件化和组件化实现方案,今天也算整理一下笔记记录一下,记得之前讲述过一篇关于组件化的文章【Android 组件化之初探】,刚好对应着阿里的Atlas组件化框架,今天主要做个大致的介绍,稍后再逐个讲述下各框架的接入方法以及具体使用方法。一、模块化、插件化和组件化1. 模块化、插件化和组件
2017-11-22 21:16:58 5517
原创 Android中实现Native与H5的通信方案汇总
若感觉排版不舒服,可移步【Android中实现Native与H5的通信方案汇总】一、利用JsBridge实现Native与H5的双向通信Android中的JSBridge是H5与Native通信的桥梁,其作用是实现H5与Native间的双向通信。在Android中展现H5也就用到了Webview,之前写了一篇文章Android WebView简单使用以及实现native与h5交互,主要就是介绍一个w
2017-10-21 09:45:14 1312
原创 Android开发中常用工具类源码积累
如感觉排版不舒服,可移步Android开发中常用工具类源码积累。三年多的时间转眼即逝,如今回过头看看自己的成长,丝毫感觉不到任何欣慰,相比昔日的同学们,感觉自己的成长太慢了,甚至有些迷茫了,感觉是时候静下脚步沉思一下然后提起脚步继续前进。一直希望有人能指引自己前进,这样自己可以避免走弯路,可是事与愿违,感觉所有的一切都得自己去尝试去摸索过后才会有所体会有所感悟。如今在自己静下来的同时希望自己从基础做
2017-09-01 22:28:42 589
原创 Android View的事件分发机制与滑动冲突解决方案
如若感觉排版不适,请移步 这里 。在Android开发中,如果是一些简单的布局,都很容易搞定,但是一旦涉及到复杂的页面,特别是为了兼容小屏手机而使用了ScrollView以后,就会出现很多滑动事件的冲突,最经典的就是ScrollView中嵌套了ListView。今天主要总结一下这方面的知识点,也当作以后复习的笔记,本文主要讲述以下几点: + View的事件分发机制 + 事件滑动冲突的思路及方
2017-06-19 20:20:51 1026
原创 Android中图片压缩方案详解
如感觉排版不舒服,可移步至此处查看图片的展示可以说在我们任何一个应用中都避免不了,可是大量的图片就会出现很多的问题,比如加载大图片或者多图时的OOM问题,可以移步到Android高效加载大图、多图避免程序OOM.还有一个问题就是图片的上传下载问题,往往我们都喜欢图片既清楚又占的内存小,也就是尽可能少的耗费我们的流量,这就是我今天所要讲述的问题:图片的压缩方案的详解。1、质量压缩法设置bitmap o
2017-03-21 14:33:02 2173 1
转载 Android N 新特性
2016年5月19日,谷歌在美国加州的山景城举办了 Google I/O 开发者大会中发布。2016年6月,Android N正式命名为“牛轧糖” 本届I/O开发者大会上,Google重点介绍了Android系统三个维度:分别是性能、安全和生产力。其中性能主要新增了Vulkan API与JIT编译器(前者优化图形性能、或者加快软件安装速度);安全性包括新的数据加密方式、恶意网站识别、系统的实时
2017-03-12 21:36:50 483
原创 android各个版本的新特性
也可移步这里查看一、Android 4.x新锁屏界面: Android4.0重新设计了锁屏幕UI,下方的解锁虚拟按键向周围发射出微光,轻轻拖动就可以解锁,比原来在UI上确实有很大的进步。全新Widget排列: 主屏幕上的Widget插件是Android区别于其他系统最大的特点,新的Widget将会像程序界面那样排列。程序和Widget插件分为两个标签,清楚明了。更直观的程序文件夹
2017-03-03 23:41:11 3807
原创 https 与 http、TCP/IP、Socket网络通信
如若感觉排版看着不舒服,请移步https 与 http、TCP/IP、Socket网络通信一、https 与 httpHTTPS HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容
2017-03-03 22:52:54 1123
原创 Android多渠道批量打包
如若感觉排版不舒服,请移步Android多渠道批量打包1、为什么要进行多渠道打包? 安卓应用商店(一个商店也叫做一个渠道,如豌豆荚,360手机助手,应用宝)众多,大大小小几百个,每当我们发新版本时,需要将Android客户端分发到各个应用市场,为了统计这些市场的效果(下载量、活跃数等),需要有一种方法来唯一标识它们,所以才有了多渠道打包。2、如何统计各个渠道的下载量、活跃数?
2017-03-02 22:54:04 3602 6
原创 Android OOM之内存泄漏详解
如若感觉排版看着不舒服,可以移步这里OOM(OutOfMemory)就是我们平时所碰到的内存溢出,而内存泄漏的最终后果就是导致OOM。 内存泄漏是造成应用程序OOM的主要原因之一!我们知道Android系统为每个应用程序分配的内存有限,而当一个应用中产生的内存泄漏比较多时,这就难免会导致应用所需要的内存超过这个系统分配的内存限额,这就造成了内存溢出而导致应用Crash。一、内存分配策略
2017-03-01 18:56:36 542
原创 Android开发之Manifest.xml
每一个Android项目都包含一个清单(Manifest)文件–AndroidManifest.xml,它存储在项目层次中的最底层。清单可以定义应用程序及其组件的结构和元数据。 它包含了组成应用程序的每一个组件(活动、服务、内容提供器和广播接收器)的节点,并使用Intent过滤器和权限来确定这些组件之间以及这些组件和其他应用程序是如何交互的。 它还提供了各种属性来详
2017-02-28 15:26:43 452
原创 Bitmap详解与Bitmap的内存优化
一、Bitmap:Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。 常用方法: + public void recycle() // 回收位图占用的内存空间,把位图标记为Dead + public final boolean isRecycled() //判断位图内存是否已释放 +
2017-02-06 09:13:34 7519 4
原创 Activity跳转方式总结
自我感觉这里的排版看着更舒服些。Activity跳转方式总结一、显式调用方法方法一: Intent intent=new Intent(本类,将要跳转的类); //Intent intent=new Intent(MainActivity.this,JumpToActivity.class); startActivity(intent); 方法二: Intent intent2=
2017-01-20 22:04:52 3691
转载 Android PackageManager 用法
参考资料:http://blog.csdn.net/qinjuning/article/details/6867806,有改动。PackageManger的主要职责是管理应用程序包,通过它可以获取应用程序信息。AnroidManifest.xml文件节点说明:一 、相关类介绍1. PackageItemInfo类AndroidMa
2017-01-13 22:47:57 23475 3
原创 Android中webView实战详解
感觉这个排版看起来更舒服 Android WebView简单使用以及实现native与h5交互一、WebView谷歌提供的系统组件,用来加载和展现html网页,其采用webkit内核驱动,来实现网页浏览功能。拥有load() URL和本地html文件。 // 云端 webView.loadUrl("https://www.baidu.com"); // 本地 webView.loadUrl("fi
2017-01-13 22:39:22 1609
原创 Android中所涉及的常用设计模式
1、单例模式概念:确保一个类只有一个实例,并且自行实例化并向整个系统提供整个实例优点: 1.1、对于那些耗内存的类,只实例化一次,大大提高性能,尤其是移动开发中1.2、程序运行中,始终保持只有一个实例在内存中public class Singleton { private static volatile Singleton instance = n
2017-01-13 22:26:29 6762 12
原创 okhttp3与旧版本okhttp的区别分析
1、包名改变 包名改了由之前的 com.squareup.http. 改为 okhttp3.我们需要将导包名直接换掉,另外记得修改progurad-rules.pro 文件中将对应包名2、OkHttpClient参数配置 之前参数可以直接mOkHttpClient.setCache(cache)设置,现在OkHttpClient使用创建者模式,需
2017-01-07 16:27:07 8444 1
原创 GreenDao设置数据库路径以及数据库升级
1. APP开发期间的数据库在上一篇文章中封装了GreenDaoManager中有个构造方法如下:private GreenDaoManager(){ if (mInstance == null) {// DaoMaster.DevOpenHelper devOpenHelper = new// DaoMaster.De
2016-12-06 20:10:05 12928 13
原创 GreenDao3.0简单使用
greenDAO 优势1、一个精简的库 2、性能最大化 3、内存开销最小化 4、易于使用的 APIs 5、对 Android 进行高度优化Greendao3.0 最主要的三大改变:换包名 实体注解 加密支持的优化GreenDao 3.0使用:GreenDao 3.0采用注解的方式来定义实体类,通过gradle插件生成相应的代码。GreenDao3
2016-12-06 20:08:27 1930
转载 Android M新控件之FloatingActionButton,TextInputLayout,Snackbar,TabLayout的使用
【转载请注明出处:http://blog.csdn.net/feiduclear_up/article/details/46500865 CSDN 废墟的树】在前不久的谷歌2015 I/O大会上,发布了Android新版本M,貌似从这个版本开始Android不在以数字命名版本了。在这次的I/O大会上谷歌对Android并没有很大的改变,主要是修改完善之前Android L版
2016-11-29 11:15:26 583
转载 Android性能分析工具——TraceView
TraceView界面现来看一下整个界面的图,整个界面包括上下两部分,上面是你测试的进程中每个线程的执行情况,每个线程占一行;下面是每个方法执行的各个指标的值上面一部分是你测试进程的中每个线程运行的时间线,下图中可以可以看到,主要只有一个main线程在执行,因为我滑动了一下列表,main线程(UI线程)正在进行绘制View呢~~然后我点击了序号为133的一个方法io.bxbxbai.a
2016-10-18 19:56:41 464
转载 应用开发进阶必经之路之性能优化
性能优化在一款产品的迭代过程中非常重要;程序实现了功能、还原产品原型只能保证程序能用,但如果要让用户更愿意使用,产品得好用。试想一下如果你开发的产品启动慢、页面显示需要长时间转圈加载、页面切换卡顿、黑白屏、用一会机器就发烫、耗内存、OOM、程序切换到后台后占用内存无法释放......,这些问题就像正在玩游戏时弹出提示框这类糟糕的用户体验一样让用户恼火,如果用户不得不使用你的产品,可能还会一直忍受;
2016-10-18 16:46:52 1580
转载 Android 各大网络请求库的比较及实战
自己学习android也有一段时间了,在实际开发中,频繁的接触网络请求,而网络请求的方式很多,最常见的那么几个也就那么几个。本篇文章对常见的网络请求库进行一个总结。HttpUrlConnection最开始学android的时候用的网络请求是HttpUrlConnection,当时很多东西还不知道,但是在android 2.2及以下版本中HttpUrlConnection存在着一些b
2016-10-18 16:45:07 432
转载 Android Studio几款实用的插件
1、android-butterknife-zeleznyandroid-butterknife-zelezny 是根据butterknife定制的一款插件,能够方便快速初始化,对于我来说是开发必备,本人也对此插件进行了一些优化,个人感觉用起来更爽 ,博客地址:ButterknifePlugin2、SelectorChapek设计师给我们提供好了各种资源,每个按
2016-10-17 15:54:59 2110
转载 (spring mvc+spring+Mybatis)框架整合
最近用Idea开发,idea是一款综合的相对较新的Java IDE。Idea支持很多整合功能,我觉得挺好用的。Idea可以校正xml,支持jsp的调试。最让我喜欢的是,写spring配置文件的时候,写的一些路径都可以自己找到。classpath自己有代码的提示,超级的智能。环境配置在整合框架之前,先配置一下JER运行环境,配置maven仓库。 1.File——ProjectSt
2016-10-14 11:16:34 558 1
转载 Android 百度地图开发(二)--- 定位功能之MyLocationOverlay,PopupOverlay的使用
转载请注明出处http://blog.csdn.net/xiaanming/article/details/11380619这一篇文章主要讲解的是百度地图的定位功能,然后还有MyLocationOverlay和PopupOverlay两个地图覆盖物的使用,Overlay是“图层”或“覆盖物”的意思,MyLocationOverlay从名字上面理解就是我的位置图层,他能够实现在地图上显示当前
2016-10-14 11:15:38 890
转载 Jsp学习——filter的使用
struts2与先前的struts不同之一就是:struts使用servlet类来处理前台消息,而struts2使用filter类来处理前台消息,有很多人喜欢把filter也称为一种特殊的servlet,因为它确实在struts2中所实现的功能几乎和servlet一个样子刻出来的,但其终究还不是完全的servlet,否则也不会叫filter了。filter与servlet最大的不同之处就在于:fi
2016-10-13 11:50:05 431
转载 关于经典开源框架STRUTS2的使用
关于STRUTS的技术文章我很早就想写一篇了,只是不知道要写些什么东西,主要是以前没怎么接触过这个框架,因此打算用熟了之后再来写,可能感受会更深一些;其实等我会了之后,依然不知道要写些什么东西,因为总感觉都很简单的样子,没什么重点可述;但基于之前在《Jsp学习——filter的使用》一文中谈到了STRUTS2的原理,在最后也说道:”struts2的配置文件中没有servlet类的配置,只有一个fi
2016-10-13 11:49:32 998
转载 JSP学习——JSP基础知识(二)
下面主要讲Jsp的9个内置对象。Jsp的内置对象为Servlet API的类或接口的实例化,它们的实例化过程由Jsp标准自动进行,意即:我们可以直接使用这些对象,而不需要声明它,这些内置对象分别为:application, config,request,response,exception,out,page,pagecontext,session;接下来,我就分别对几个主要对象的特性进行详细阐述:
2016-10-12 10:41:11 570
转载 JSP学习——JSP基础知识(一)
1.JSP语句的生明JSP的声明语句格式,,要注意,凡是用JSP声明的变量或函数,在servlet容器翻译成servlet类时,都将其翻译为servlet类的成员变量或函数;当JSP文件被翻译成servlet类后进行实例化时,所有的客户端访问的实例化servlet对象都是同一个对象,这意味着,如果试图对成员变量进行操作,那么其影响可谓是全局性的。来看下下面实例: <% St
2016-10-10 17:11:39 473
转载 Android 中的 Service 全面总结
1、Service的种类按运行地点分类:类别区别 优点缺点 应用本地服务(Local)该服务依附在主进程上, 服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Local服务因为是在同一进程因此不需要IPC,也不需要AIDL。相应bindService会方便很多。 主进程被K
2016-10-09 15:04:52 308
原创 Android ComponentName的用法
ComponentName与Intent同位于Android.content包下,我们从Android官方文档中可以看到,这个类主要用来定义可见一个应用程序组件,例如:Activity,Service,BroadcastReceiver或者ContentProvider。 那么,如何用ComponentName来定义一个组件呢。 这是ComponentName的
2016-10-09 14:24:35 14908
原创 AndroidStudio 使用AIDL
一直以来都认为AIDL的应用离我很遥远,甚至不知道如何去用,也就懒得去学,之前的项目中也看到过aidl文件,只是懒得去看而已,现在感觉自己真的是无药可救了,如果只止步于学习一些UI调整的东西谈何进步,不过有些东西也真是逼着去学的,要学的东西太多了,只要隔着一段时间不用的话,估计学习的东西又都忘完了,不说了,开始讲正事,也算给自己留个笔记,长时间不用再回来看看。1、为什么要有AIDL?对于A
2016-10-09 11:41:00 1713
转载 Android 使用动态加载框架DL进行插件化开发
如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456 (来自时之沙的csdn博客)概述: 随着应用的不断迭代,应用的体积不断增大,项目越来越臃肿,冗余增加.项目新功能的添加,无法确定与用户匹配性,发生严重异常往往牵一发而动全身,只能紧急发布补丁版本,强制用户进行更新.结果频繁的更新,反而容易降低用户使用黏性.
2016-06-15 10:40:27 582
转载 APK动态加载框架(DL)解析
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/39937639 (来自singwhatiwanna的csdn博客)前言好久没有发布新的文章,这次打算发表一下我这几个月的一个核心研究成果:APK动态加载框架(DL)。这段时间我致力于github的开源贡献,开源了2个比较有用且有意义的项目,一个是PinnedHead
2016-06-15 10:39:42 607
JSP以及Java后台接口Demo
2017-03-02
Intellijidea建javaWeb以及Servlet简单实现
2017-03-02
Android实现获取短信验证码的功能以及自定义GUI短信验证
2016-04-14
Android中播放gif和flash动画的demo
2015-01-28
自定义通知栏notification,类似酷我音乐在后台运行时,带有按钮的通知栏
2014-09-24
调用相机、相册、创建快捷方式、以及验证码和监听手机系统联系人是否修改与添加等功能demo
2014-09-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人