Android 项目总结
程序邦
1. 擅长Android 开发
2. 擅长React Native 跨平台开发
展开
-
Android 坑之时间戳转换
毫秒转换成时分秒 格式:HH:mm:ss Java兑现1、毫秒转换成时分秒 格式:HH:mm:ss Java实现 long ms = 300 * 1000 ;//毫秒数SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");//初始化Formatter的转换格式。String hms = f原创 2016-11-03 15:17:31 · 2302 阅读 · 0 评论 -
Android使用反射机制设置ListView的默认焦点
基本学 Android 的都会遇到这个问题吧——“Android 的 ListView 如何设置默认焦点?”在网上找到了很多方法都行不通:1.setSelection(0)mListView.setSelection(0);1这个是最大众的,大家都知道的方法,可是在初始化的时候并不管用。2.异步 setSelection(0)mListView.post(n原创 2017-07-12 15:13:44 · 352 阅读 · 0 评论 -
Android Tv 焦点总结
在给电视项目的时候,技术点和难点一般都是基于焦点的问题。所以在此打个TAG来记录总结下常用的焦点问题解决方式:1.查看焦点是否选中针对于单个控件如ImageView,会给其Src属性添加一个Selector,如下 2.启用控件获得焦点的能力 如果是xml的话设置其Focusable android:focusable="@bo原创 2017-06-14 17:54:10 · 558 阅读 · 0 评论 -
Android Tv 焦点总结 TvRecyclerView
在做TV 焦点使用RecyclerView的时候,其控件的上下左右有可能会丢失焦点,所以继承RecyclerView重写几个方法public class TvRecyclerView extends RecyclerView { private static final String TAG = "TvRecyclerView"; private int position;原创 2017-06-14 17:57:49 · 3655 阅读 · 0 评论 -
Android selector 最佳写法 用一张图片实现按钮按下和普通效果的样式
第一种方法(强烈推荐)方法:selector做遮罩,原图做background。我们做按钮的时候经常需要用两个图片来实现按钮点击和普通状态的样式,这就需要提供两种图片,而且每个分辨率下还有多套图片,大大增加了apk的大小。我们希望让这两张图片合二为一,而且还能实现两种或者多种状态,怎么做呢?我们首先建立一个圆形的selector,正常情况下是完全透明的,按下后透明度原创 2017-06-28 15:08:05 · 12401 阅读 · 0 评论 -
Android长连接,怎么处理心跳机制
所谓的心跳包就是客户端定时放送简单的信息给服务器端,告诉它我还在而已。代码就是每隔几分钟发送一个固定信息给服务器端,服务器端回复一个固定信息。如果服务器端几分钟后没有收到客户端信息则视客户端断开。比如有些通信软件长时间不适用,要想知道它的状态是在线还是离线,就需要心跳包,定时发包收包。 心跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活在。事实原创 2017-09-13 14:59:25 · 969 阅读 · 0 评论 -
彻底明白Activity启动模式-SingleTop、SingleTask、SingleInstance具体使用场景
启动模式启动模式是什么有这样的场景:当我们使用App的时候,呈现出一个Activity,按下返回键(不考虑重写返回键事件),常常就回退到上一个打开的Activity或者退出App。//重写返回按键事件public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEve原创 2017-09-14 10:35:09 · 3490 阅读 · 0 评论 -
MVP最新理解 不给Prensenter 写接口
Google的做法是:首先写一个上帝接口BasePresenter,然后在每个功能模块里都写了协议类名为…Contract,在其中封装了模块下的View接口和Presenter接口,同时给View设定了泛型,就是当前协议类中Presenter:/** * 这个类声明了该模块下View和Presenter的协议 * BaseView和BasePresenter都是很简单的上帝接口 */原创 2016-09-13 14:54:12 · 1230 阅读 · 0 评论 -
Android随笔:单元测试的好处
许多开发者都有个习惯,常常不乐意去写个简单的单元测试程序来验证自己的代码。对自己的程序一直非常有自信,或存在侥幸心理每次运行通过后就直接扔给测试组测试了。然而每次测试组的BUG提交过来后就会发现自己的程序还存在许多没有想到的漏洞。但是每次修改好BUG以后还是怀着侥幸心理,认为这次不会有bug了。然后又一次自信地提交,结果又败了。因为这样反复几次后。开发者花在找BUG和修复BUG的这些时间加起来已经原创 2017-09-12 12:34:55 · 380 阅读 · 0 评论 -
[几何]判断两个线段是否相交(多语言实现)
转载自:http://blog.csdn.net/shao941122/article/details/51488639本文主要讲怎么判断两个线段是否相交参考博客:http://www.geeksforgeeks.org/check-if-two-given-line-segments-intersect/http://www转载 2017-10-29 18:42:52 · 593 阅读 · 0 评论 -
滴滴国际化项目 Android 端演进
转载自:http://www.trinea.cn/android/didi-internationalization-android-evolution/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io这是今年下半年我在 CSDN 举办的移动开发者大会上的分享,前几天朋友问起才想起来没在博客上同步。记录下分转载 2017-10-13 15:02:59 · 460 阅读 · 0 评论 -
logback的使用和logback.xml详解
logback的配置介绍 1、Logger、appender及layoutLogger作为日志的记录器,把它关联到应用的对应的context上后,主要用于存放日志对象,也可以定义日志类型、级别。Appender主要用于指定日志输出的目的地,目的地可以是控制台、文件、远程套接字服务器、 MySQL、PostreSQL、 Oracle和其他数据库、 JMS和远程UNIX Syslog守护原创 2017-11-23 15:27:15 · 324 阅读 · 0 评论 -
Android的各版本间的区别总结
Android 1.0 第一版商用操作系统Android 1.1 更新了部分API,新增一些功能,修正了一些错误,同时增加com.google.android.maps包 Android 1.5智能虚拟键盘 使用widgets实现桌面个性化 在线文件夹(Live Folder)快速浏览在线数据 视频录制和分享 图片上传 更快的标准兼容浏览器 Voice原创 2015-02-06 09:58:00 · 487 阅读 · 0 评论 -
用命令行方式升级Android SDK
1. 安装javaUbuntu 13.10 安装Oralce JDK2. 下载Android SDK[plain] view plain copywget http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz 解压后,进入目录的tools目原创 2017-10-25 09:45:32 · 596 阅读 · 0 评论 -
Android iBeacon集成开发,距离判断 全指南
最近项目组老大让研究一下iBeacon显示,写一个iBeacon显示相关的演示提供给别人...感觉网上的资料好少啊,最后弄完我还是写一份吧,说不定能帮助到别人呢?各种百度,谷歌......1.iBeacon是什么?http://blog.csdn.net/jie1991liu/article/details/47403455 http://blog.csdn.net/eieihihi/artic...转载 2018-05-28 13:56:51 · 3026 阅读 · 1 评论 -
android组件化方案
目前项目中,各种业务交杂在一起,互相跳转、互相请求数据。分模块的过程必然是痛苦的,需要增加模块之间通的信协议。对于一个5,6人的团队来说,全都放在一个大模块中似乎也没啥不好,可以随心所欲地调用,节约思考框架合理性的时间。但最终让我解除疑惑是团队扩张的长远考虑,未来团队扩张到8~10人时,在同一个模块中开发不同的业务就会很乱。代码量2倍,掌握的难度就会超过4倍,按业务分模块一定是未来的方向。原创 2017-06-06 11:33:30 · 441 阅读 · 0 评论 -
FragmentPagerAdapter与FragmentStatePagerAdapter使用详解与区别
FragmentPagerAdapter是android-support-v4支持包里面出现的一个新的适配器,继承自PagerAdapter,是专门用来给支持包中出现的ViewPager进行数据适配的。 PagerAdapter在之前的文章中进行过简单的介绍,不记得怎么使用的可以先去看一下。 FragmentPagerAdapter,见名知意,这个适配器就是用来实现Fr原创 2017-05-04 13:08:01 · 457 阅读 · 0 评论 -
使用TextView/EditText应该注意的地方
EditText小记 http://www.cnblogs.com/endure/p/3690443.html Android字体阴影 strings.xml文件定义字符串中的标签 Android TextView 自动换行问题 关于android软键盘enter键的替换与事件监听 软件盘的界面替换只有一个属性android:imeOptions,这个属性的可以取的原创 2015-08-07 11:51:52 · 730 阅读 · 0 评论 -
ubuntu下搭建NDK环境
1.从官网下载NDK http://developer.android.com/tools/sdk/ndk/index.html#Reqs,并解压文件。(在此目录为/home/zhangz/develop/android-ndk-r8b)2.配置NDK的环境变量 执行:gedit ~/.bashrc #在打开的文件末尾添加如下内容 NDK=/home/zhangz/deve原创 2015-06-16 20:38:35 · 564 阅读 · 0 评论 -
ubuntu 修改环境变量导致的错误 登录失败
http://blog.sina.com.cn/s/blog_5f24581b010130vz.html原创 2015-06-16 20:16:30 · 568 阅读 · 0 评论 -
Android横竖屏切换重载问题与小结
Android手机或平板都会存在横竖屏切换的功能,通常是由物理重力感应触发的,但是有时候也不尽然,通常在设置里面我们可以对手机的横竖屏切换进行关闭,操作界面如下 只需要点击下“屏幕旋转”按钮就可以关闭横竖屏切换了。一、禁止APP内横竖屏切换上述设置更改的是整个手机的横竖屏切换,当手机没有关闭横竖屏切换功能时,系统一旦触发横竖屏切换,缺省状态下,当前活动的App的界面原创 2015-02-12 10:46:47 · 1073 阅读 · 0 评论 -
Android中如何做到Service被关闭后又自动启动
首先要说的是,用户可能把这种做法视为流氓软件。大部分时候,程序员也不想把软件做成流氓软件,没办法,领导说了算。 我们在使用某些Android应用的时候,可能会发现安装了某应用以后,会有一些服务也会随之运行。而且,这些服务每次都会随着手机开机而启动。有的服务做的更绝,当用户在运行的服务中手动停止该服务以后,过了一段时间,服务又自动运行了。虽然,从用户的角度来说,这种方式比较流氓。但是,从转载 2015-01-14 10:46:11 · 603 阅读 · 0 评论 -
ListView点击checkbox其他checkbox也被同时选中的问题
假如ListView,分成2页(或者设置数据可以纵向拉,可隐藏),每页3条数据,每个Listview的Item 里面有个checkBox,现在,当我选择第一页的前两天数据,翻到第二页,竟然第二页后两条数据也选中了,这是绝对不允许的。经过本人的N次调试,发现public View getView(int position, View convertView, ViewGroup parent)传原创 2015-01-14 09:47:36 · 818 阅读 · 0 评论 -
Android实现双进程守护
做过android开发的人应该都知道应用会在系统资源匮乏的情况下被系统杀死!当后台的应用被系统回收之后,如何重新恢复它呢?网上对此问题有很多的讨论。这里先总结一下网上流传的各种解决方案,看看这些办法是不是真的可行。1.提高优先级这个办法对普通应用而言,应该只是降低了应用被杀死的概率,但是如果真的被系统回收了,还是无法让应用自动重新启动!2.让service.onStartComma转载 2015-01-13 13:57:50 · 1584 阅读 · 1 评论 -
Android中Scrollview、ViewPager冲突问题汇总(已解决)
显示问题:显示问题:1、设置ScrollView的fillViewPort为true2、设置ViewPager的layout_height为一个固定高度,比如:100dip冲突问题:不过ViewPager显示出来以后,还有另外一个冲突:ViewPager左右不能滑动了!是的,因为这个事件其实已经被外层的ScrollView截获!重写ScrollView控转载 2015-01-14 13:05:19 · 675 阅读 · 0 评论 -
Android 开发实战经验总结(架构人生)
以前一直想写一篇总结 Android 开发经验的文章,估计当时的我还达不到某种水平,所以思路跟不上,下笔又捉襟见肘。近日,思路较为明朗,于是重新操起键盘开始码字一番。先声明一下哈,本人不是大厂的程序猿。去年毕业前,就一直在当前创业小团队从事自己热爱的打码事业至今。下面总结是建立在我当前的技术水平和认知上写的,如有不同看法欢迎留下评论互相交流。1.理解抽象,封装变化目前 Android 平台转载 2016-10-17 11:12:12 · 613 阅读 · 0 评论 -
Listview ViewPager 解决滑动冲突
一般在一个APP首页很容易碰到。一个Listview中有一个Viewpager作为广告栏进行一页一页的进行翻转,但是listview是纵向滑动的,viewpager是横向滑动的。所以会导致有滑动冲突,那该怎么解决呢,一般都是自定义一个ViewPager,利用View传递事件进行处理,好了,废话不多说,直接上代码public class CustomerViewPager extends Vie原创 2016-10-17 14:45:33 · 385 阅读 · 0 评论 -
MVC和MVP在app中的对比分析以及实际应用
为了解决逻辑处理和UI视图的松散耦合,MVC和MVP的架构模式在很多App中使用比较广泛。那什么是MVP呢?它又和我们常常听到的MVC有什么关系了以及区别呢?MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负 责显示。作为一种新的模式,MVP与MVC有着一个重大的区别:原创 2016-10-18 11:27:34 · 768 阅读 · 0 评论 -
Android 项目总结 ViewPager Indicator fragment内存优化过程
因前段时间做了个对内存和CPU要求特别严格的一个项目,场景是:ViewPager+Fragment+Indicator的一个节目库,因为期间遇到了很多坑,所以在此做一个总结,以便下次再遇到这样的坑可以一下子跳过去。好了,废话不多说。一开始看到项目需求的时候,是左右滑动的界面,因为之前做过类似需求,所以很想当然的采用了之前的那套代码方法。问题一ViewPager+Frag原创 2017-01-03 14:24:37 · 1380 阅读 · 0 评论 -
Android组件化开发实践
Android项目中代码量达到一定程度,编译将是一件非常痛苦的事情,短则一两分钟,长则达到五六分钟。Android studio推出instant run由于各种缺陷一般情况下是被关闭的……组件化开发可以有效降低代码模块的耦合度,使代码架构更加清晰,同时模块化的编译可以有效减少编译时间,当然总的编译时间是不会减少的,只是App模块化之后开发某个模块时,只需要编译特定模块,可以快速编译调试。转载 2017-01-15 18:54:59 · 1922 阅读 · 0 评论 -
Android本地App与html5的交互
介绍:Android的开发中除了本地app的处理外,有时需要与html5的交互,与html5的交互无非两种情况。1:html5调用app本地的方法。例如,在一个网页上点击一个分享按钮控件,这时会弹出本地原生的一键分享界面,通过html5调用本地方法将值传给本地分享所需的值。2:app调用html5的javaScript方法。同样是分享,例如,在app上原生界面上点击分享按钮原创 2017-01-17 10:36:37 · 571 阅读 · 0 评论 -
Android 的保活的两种解决方案
原文链接:http://blog.csdn.net/pan861190079/article/details/72773549详细的阐述了 Android 的保活的两种解决方案 —— 由panhaos分享做Android 保活的背景由于之前做一个项目的时候需要让进程一直在后台活下去保持不被杀死的状态,因此也是各种百度各种苦苦寻找,本来是想着靠Service来做保活的,因为我的手机是6....转载 2018-09-12 13:19:25 · 726 阅读 · 0 评论