
Android上层开发
Ethan_KF
这个作者很懒,什么都没留下…
展开
-
Fragment事务与回退栈
一句话总结,回退栈管理的是事务(Transaction),栈里的数据结构是事务,不是fragment本身。FragmentManager manager = getSupportFragmentManager();(这是v4包的,app也有相关方法)FragmentTransaction transaction = manager.beginTransaction();FragmentManage原创 2017-01-20 22:05:55 · 784 阅读 · 0 评论 -
使用gradle区分开发环境
场景:公司服务器与app都会有test、beta、online等环境区分,这些可以在代码里手动修改,然后重新build新的apk文件,而且一个手机上只能装一个app,如果切换环境需要覆盖安装。本博客主要是使用build.gradle文件动态修改开发环境配置,核心是使用BuildConfig这个编译过程生的文件。buildTypegradle中可以指定编译类型,在build.gradle中可以配置bu原创 2017-01-19 14:54:33 · 2330 阅读 · 0 评论 -
海外社交平台(Facebook Twitter WhatsApp)的分享
海外的社交平台没有像Mob一样的集成sdk,各有各的sdk,掉进几次坑里,在此记录一下。三个平台都可以同时分享图片、链接、文字、Facebookfacebook分享的图片需是来自网络的图片url,sdk注释:/*** Set the URL of a picture to attach to this content.* @param imageUrl The network URL of an原创 2017-01-18 00:17:38 · 10732 阅读 · 0 评论 -
MVP模式在实际开发中的使用
业务逻辑写的越来越多,越来越复杂,将业务逻辑都放到Activity中写当时可能觉得很爽,因为写的随意,写的速度也快,但是后期维护很困难,交接项目的成本也很高。MVP模式应运而生。MVP原理M指代model,用于存放数据的模型,用于Json解析、缓存等。 V指代View,通常意义上的Android视图,由于静态的view功能太少,需要Activity控制,这里将Activity视为View,进行视图原创 2017-01-18 00:12:21 · 972 阅读 · 0 评论 -
Android js和native交互的两种方法
本博客解决的问题是Android本地方法和webview中js方法交互,方法一是使用的是Android自身js注解,方法二是开源库jockeyjs。方法一:js注解先上js脚本(代码来自网络):<html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><script type="text/原创 2016-07-08 18:59:51 · 5074 阅读 · 0 评论 -
DialogFragment与Activity通信最佳实践
这篇博客与上篇http://blog.youkuaiyun.com/ethanhola/article/details/50888410组成一个Surfaceview中自由手绘的demo,源码地址:https://github.com/boomstack/MySurfaceView 欢迎follow and fork! Google推荐使用DialogFragment创建对话框,因为Android系统设计的原创 2016-03-14 19:03:57 · 1009 阅读 · 0 评论 -
Android SurfaceView双缓冲绘图
这篇文章与下一篇关于DialogFragment与Activity通信的博客共同组成了一个Demo,即使用SurfaceView实现自由手绘,功能包括颜色选择、画笔粗细、撤销重做、橡皮擦。源码托管在github,欢迎follow and fork! 源码地址:https://github.com/boomstack/MySurfaceView 双缓冲其实解决的问题是不加缓冲时的闪烁、卡顿问题,不原创 2016-03-14 17:43:04 · 3245 阅读 · 0 评论 -
Android测试框架之Robolectric
要开始一个新项目了,奈何测试部门人不够了,只能自己写测试了。。Robolectric是封装了junit4的测试框架,我对测试不怎么了解,只有大学上的软件测试课的基础,只知道什么是白盒测试,黑盒测试,集成测试,Robolectric属于黑盒测试。配置Robolectric环境:mac+Android studio+sdk level23 (1)app下的build.gradle: dependen原创 2016-03-31 19:38:35 · 1918 阅读 · 0 评论 -
Android依赖注入库Dagger的使用
关于依赖注入(Dependency Injection,简称DI)类和类之间要建立联系,比如A类需要B类的实例对象,我们就说A类依赖B类,反过来,就说B类注入到A类中,所以“依赖注入”表示两层含义,依赖和注入。View层面的DI看了两个DI的库,AndroidAnnotation和Butter knife,个人感觉后者更好用一些,不会生成多余的类文件,都是view层面的DI,使用比较简单自定义的DI原创 2016-03-15 19:32:29 · 594 阅读 · 0 评论 -
Service Intent must be explicit的两种解决方法
crash的原因是5.0以上service不能使用隐式intent启动,但是使用AIDL进行进程间通信时并不能得到具体的类名,so, 问题还得解决。方法一最简单的是新建Intent的时候带入packagename,直接调用setPackage方法,把service所在的包名设置进intent。 Intent intent = new Intent(); intent.s原创 2017-02-03 18:20:55 · 2035 阅读 · 0 评论