本文中涉及到的所有代码现已在Github上开源,地址: https://github.com/xuexiangjys/JPushSample
极光推送是国内最早做第三方消息推送平台的公司,在消息推送界还是相对有影响力的。我最早是在2016年接触到极光消息推送的,那时候公司需要做消息推送业务,但是由于之前没做过消息推送,且自建消息推送平台代价太高,而且稳不稳定谁也不敢打包票,于是就选择了当时较为有名的极光推送。
那么当时我为什么选择极光推送呢?
1.免费。免费版本的每个 Appkey 的最高推送频率为 600 次/分钟,而且没有推送数量限制,者对于消息推送业务刚起步的企业来说,完全够用了。
2.上手简单,文档齐全。平台官网上的文档非常详细,下载下来的演示demo也非常丰富,通过简单的几行代码就可以轻松接入。
3.功能丰富。比起小米推送、华为推送、信鸽推送、友盟推送来说,极光推送的功能是最全的。想具体了解这几种推送的可参见我的开源框架XPush.
4.社区支持度高。就拿我们Android来说,不仅支持原生集成,还支持React Native、Flutter、Weex、HBuilder、Cordova等混合开发方式。
那么极光推送真的有那么好吗?其实也不全是,我在使用的过程中也发现了一些问题:
1.推送的到达率差一点。只要应用退到后台被系统回收或者被用户杀死,基本就很难再收到推送了。这点自然比不上那些手机厂商的推送。
2.没有免费开放厂商通道推送集成。想要集成厂商通道推送的话,还需要充钱成为VIP才行。
不过如果你是消息推送的初学者的话,我想极光推送肯定是你不二的选择。那么下面来跟着我学习如何使用极光推送吧!
一个简洁而又优雅的Android原生UI框架,解放你的双手!还不赶紧点击使用说明文档,体验一下吧!
涵盖绝大部分的UI组件:TextView、Button、EditText、ImageView、Spinner、Picker、Dialog、PopupWindow、ProgressBar、LoadingView、StateLayout、FlowLayout、Switch、Actionbar、TabBar、Banner、GuideView、BadgeView、MarqueeView、WebView、SearchView等一系列的组件和丰富多彩的样式主题。
一个便捷的TCP消息包拼装和解析框架
简单通过@Protocol
和@ProtocolField
的配置,即可让实体对象拥有自动转化为TCP传输的byte数据和自动byte数据解析。
支持byte、short、int、long、byte[]、short[]、int[]、long[]、String等常用基础类型,支持类型的拓展
支持大端和小端两种存储方式,支持设置全局默认存储方式和局部存储方式。
支持short、int、long读取长度的自定义。
支持对实体字段进行排序,避免解析错乱。
支持自定义协议项和协议解析器。
支持自动协议映射,自动根据读取的opcode识别出对应的协议并进行解析,并根据对应注册的协议信息判断协议是否有响应。
在进行Android开发的过程中,我们必定会遇到视频图像处理、高强度密集运算、特殊算法等场景,这时我们就不得不需要去接触一些C/C++代码,进行JNI开发。下面我将从Android.mk和CMake这两种方式教大家如何进行开发。文章结尾将给出演示的项目代码,如果你能耐心地仔细看完,相信你一定能掌握如何在Android下进行JNI开发。
package com.xuexiang.jnidemo;
public class JNIApi {
public native String stringFromJNI();
}
一个简易的悬浮窗实现方案
支持自定义布局的悬浮窗。
支持自定义拖动事件、点击事件。
支持悬浮窗自动吸附效果。
支持初始化悬浮窗的位置。
支持悬浮窗翻转吸附。
一个Android通用的IPC(进程通信)框架。该项目主要是模仿饿了么开源项目Hermes的设计进行的自我理解改写。
支持自定义服务接口实现进程通信,无需定义AIDL接口,所有IPC通信就像调用本地函数一样简单。
支持自定义接口服务(服务发现)、获取单例和获取工具类方法。
支持进程通信的接口回调。
支持接口回调的线程控制。
拥有垃圾回收机制,防止接口回调内存泄漏。
支持跨进程和跨应用通信。