问题来源于一个读者朋友的提问, 这几乎是一个老生常谈的问题了, 但是忍不住还想多说一些. 就当作老程序员对于想加入这一行业新人的叮嘱, 参考.
在广告的间隔中进行数据加载
在Android项目的应用启动前, 一般都需要加载若干功能库或者发送网络请求, 这些操作需要在首页加载前完成, 因此多数应用选择添加首屏广告或者Logo. 既能提供充足的加载时间, 又能赚取商业利润和产品曝光. 最优的方案是根据耗时任务需要的时间, 设置首屏的显示时间. 本文使用Dagger与RxJava控制首页的显示时间.
ConstraintLayout 约束布局的概念与使用
ConstraintLayout(约束布局), 是2016年Google I/O
最新推出的Android布局, 目前还在完善阶段. 从推出的力度而言, 应该会成为主流布局样式. 在最新版本的Android Studio
中, ConstraintLayout已经成为默认布局.
使用 DialogFragment 实现底部弹窗布局
Android对于底部弹窗已经在23.2新的实现方式, 即BottomSheet. 然而对于低版本, 我们仍需使用DialogFragment. 底部弹窗与普通Dialog不同, 需要紧贴应用下部, 但本质仍是一个Fragment, 通过继承DialogFragment类, 定制不同样式的Fragment.
详解 View 的基础概念
在Android中, View作为最重要的显示控件, 概念与参数较多. 所有的显示控件都继承于View, 包含ViewGroup也是继承于View. 在View中, 核心概念包含Position(位置), MotionEvent(运动事件), TouchSlop(触摸间隔), VelocityTracker(速度追踪), GestureDetector(手势检测). 本文主要介绍View的这些概念.
实现 AIDL 接口的 Binder 连接池
Binder作为AIDL通信的核心, 在使用中经常需要重复利用, 动态管理AIDL接口. Binder连接池的主要作用是把Binder请求统一发送至Service执行, 即动态管理Binder操作, 避免重复创建Service. 本文使用两种简单的AIDL服务, 使用Binder连接池动态切换, 含有演示Demo.
使用 Socket 处理跨进程的实时聊天
Socket是套接字, 网络通信经常使用的方法, 分为TCP和UDP两种模式, 需要网络权限, 当然也可以应用于跨进程通信. 本文通过一个简易的Android聊天程序, 熟悉Socket的使用方法.
使用 ContentProvider 跨进程共享数据
ContentProvider主要应用于进程间数据共享. 对于应用而言, 多进程并不会经常使用, 因而较少使用ContentProvider, 是最不常见的四大组件(Activity, Service, BroadcastReceiver, ContentProvider). 但是其优异的性能与便捷, 对于多应用共享数据而言, 非常重要, 比如共享同一份计步数据等. 开发者只有掌握多种技能, 才能在开发中游刃有余, 用最优的方式完成项目, 提升应用性能, 间接提高用户体验. 本文借用Demo, 讲解ContentProvider共享数据的要点.
Android 使用 AIDL 实现跨进程通信
AIDL(Android Interface Definition Language), 即Android接口定义语言. 在Android中, AIDL是跨进程通信的主要实现方式. 我们同样也可以使用AIDL, 实现自己的跨进程方案. 本文介绍AIDL的使用方式.
Android Tips 8
本文是Tips的第8节, 记录一些有趣的知识点, 再加一些有用的代码段, 精心准备, 来源于实践.
Android 进程使用 Messenger 通信
进程之间不能共享内存数据, 但是可以进行通信, 除了简单的Intent通信, 也可以使用Messenger, Messenger基于AIDL实现, 顺序执行, 不支持并发. 为了区分通信的始末, 我们暂定发送数据是客户端, 接收数据是服务端. 本文介绍Messenger的使用方式, 含有Demo.
Intent 或持久化存储处理复杂对象
在进程或页面通信时需要使用Intent传递数据; 在对象持久化时需要存储数据. 对于复杂的对象, 进行序列化才可传递或存储, 可以使用Java的Serializable
方式或Android的Parcelable
方式. 本文介绍Serializable和Parcelable的使用方式, 含有Demo.
React Native 实例 - BBC新闻客户端
关于React Native
的实例, BBC新闻客户端. 通过访问BBC的公开网络接口, 获取新闻内容, 也可以根据类型显示. 在编写代码中, 学习RN的知识, 源码是使用ES6的规范编写, 符合Facebook的RN代码最新规范.
平安好医生技术栈的分析
平安好医生作为平安旗下的移动医疗应用, 受到平安集团的很大重视, 非常不错. 让我们来分析一下这款应用所使用的技术吧, 多学习多进步. 大家在文中获取需要学习的内容吧.
关于春雨线下诊所的创意策划
我的创意, 关于春雨诊所的宣传语和三个需要解决的问题.
如何成为一名优秀的程序员
无论做什么工作, 都希望能做到最好, 就像参与一款游戏, 每个人都希望能赢到最后. 工作自然也会有其”秘籍”, 让我们更快的实现目标. 有些工作五年的程序员仍然很平庸, 也有刚学一年就技术出众的天才.
关于 Android 进程的简介
在Android系统中, 进程非常重要, 除了主进程运行App, 我们还可以使用其他进程处理独立任务.
React Native 的 ES6 类写法与未定义错误
ES6, 即ECMAScript6, JavaScript的新标准, 书写更加规范, 代码更加优雅. React Native推荐使用ES6的类写法代替传统的模块, 即使用extends React.Component
代替React.createClass
. 本文介绍在ReactNative中ES6的写法, 与传统方法进行对比, 并解决未定义(undefined)错误.
React Native 实例 - 网格游戏
通过编写React Native实例, 理解代码逻辑, 熟悉编程规范. 本文介绍网格游戏, 从中可以学习绘制数组拼接页面, 创建动画视图的使用方式. 多做多练多思考.
React Native 的 Navigator 组件使用方式
React Native的编程思想类似于iOS
, 导航栏也使用Navigator
作为标识, 类似于Android
的ActionBar
. 导航栏作为最重要的应用组件之一, 除了处理页面导航功能以外, 还会提供页面栈的管理, 管理页面的跳入和跳出. 本文介绍一下 Navigator 组件的使用方式.