自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(138)
  • 资源 (4)
  • 收藏
  • 关注

原创 android下的XMPP对应smack-4.2.1,实现登录,注册,发单聊,加聊天室,发群聊等简单功能

1.API地址:点击打开链接2.openfire,spark下载:点击打开链接3.效果图4.引用的JAR:compile files('libs/fscontext.jar')compile files('libs/providerutil.jar')compile files('libs/xpp3-1.1.6.jar')compile '

2017-11-27 15:26:08 6035 19

原创 Google Firebase bom接入

fireBase bom 接入

2023-01-04 09:52:21 443

转载 ExoPlayer 视频播放器(转载)

ExoPlayer

2022-12-13 10:02:41 436

原创 Android Target 从 30 升到 31

Android Target 从 30 升到 31

2022-11-17 09:27:20 2553 4

原创 说说最近我公司做的产品的混合架构(原生/flutter/rn/h5)

先立个Flag开始写博客(从20年到22年断了2年多)

2022-11-15 09:53:31 531

转载 设计模式——proxy代理模式

转载自:https://www.cnblogs.com/bigbigtree/p/9217584.htmlhttps://www.cnblogs.com/libinhyq/p/9578902.html定义代理模式顾名思义,作为某对象的代表,去做某些事情。例如海淘、转运公司,代收快递等,都是生活中的代理模式。代理模式的英文叫做Proxy或Surrogate。定义:代理(Proxy)...

2019-12-06 10:04:38 137

原创 初学flutter遇到的坑

推荐自学网站:flutter中文网在MAC永久配置相关环境变量:export PATH=${PATH}:/Users/huangrenqian833/Downloads/flutter/bin/Users/huangrenqian833/Downloads为fullter sdk下载解压后的目录打开环境配置文件:open -e .bash_profile检测f...

2019-12-02 14:43:55 268

转载 IM 端到端加密

什么是端到端加密?信息安全领域的大多数专家都承认,端到端加密是确保数据交换安全的最可靠方法之一。按照这种方法,在端到端加密应用之间传送的消息只能由这些应用的用户读取,任何第三方都无法读取。通过使用唯一密钥进行数据加密和解密,可以实现此类功能。只有终端用户可以生成和存储这些密钥。端到端加密系统旨在确保,即使不法分子得以访问传输的数据,其也无法破译数据内容。端到端加密的这项与众不同的特征还体现在所...

2019-11-28 10:54:58 4044

原创 Android 版本区别

4 Android4.4[API 19]:开发者使用上改变点:4.1.1:应用支持全屏模式,也就是常说的 沉浸式4.1.2:虚拟按键可隐藏,既然沉浸式底部导航栏跟着支持了,那就顺路把相关控制API也暴露给开发者系统上改变:Dalvik虚拟机。5 Android5.0[API 21]:时尚版开发者使用上改变点:5.1 Material design5.1.1 FloatingAct...

2019-11-27 16:01:02 921

转载 android webView与原生交互

正文一切基于项目WebViewStudy来说明,都是最小单元案例,可作为参考研究,本文从几个方面来讲解:1、Java调用WebView里的js代码(传递参数) 2、WebView里的js代码调用Java本地方法(传递参数) 3、外部注入js代码 4、WebView长按事件相关JS代码:<html><head> <title>js调...

2019-11-27 11:34:59 839

原创 android 秒开欢迎页

思想就是:欢迎页不设置布局,即不setContentView(R.layout.activity_main);直接在manifest设置theme,把欢迎页面的内容写在styles.当然更关键的是:application/activity的onCreate尽量不做耗时操作,耗时操作放子线程。<application android:allowBackup="true...

2019-11-21 17:23:38 210

原创 从TCP socket开始写一个即时聊天IM,以下是“socket核心代码块的伪代码”,仅供参考

注:Log为日志打印 和AsyncTask为异步请求,请参考我其它博客。那就直接上代码吧,注释都写在代码里面了。import java.io.InputStream;import java.io.OutputStream;import java.net.InetSocketAddress;import java.net.Socket;import java.net.Unknow...

2019-11-21 16:19:58 408

原创 使用contentprovider实现进程间的SharedPreferences

多进程操作sp/db/file等文件都是不安全的,因为不同进程拥有不同的进程锁并且有自己的缓存,导致读取到脏数据。为了安全起见,多进程不可使用SharedPreferences进行数据交互,请使用contentProvider。为了使用方便,仿照SharedPreferences封装了contentProvider。以下博客亲测有效。https://www.jianshu.com/p/3e...

2019-11-21 16:07:11 552

原创 android9.0系统下,如何保活

android9.0系统下,讨论如何延长APP退到后台的保活/复活时间一、7.0及以上不存在真正意义的保活。二、盘点目前在9.0上,可能有效的“白色手段”保活手段(这里不讨论黑色和灰色手段)。1.仿TIM引导用户打开“后台自启动”和加入“手机白名单”。测试开始后台自启动,测试通知栏多久还能收到通知华为M10 9.0时长3到5小时没被杀死VIVO x23 9.0(数字以分...

2019-07-09 18:10:20 10309 7

原创 android 防截屏工具类

import android.app.Activity;import android.view.WindowManager;/** * 防止截屏,一般在onCreate中使用,PAScreenShotUtils.preventScreenShot(this); * 防截屏工具类 */public class ScreenShotUtils { /** * 防止...

2019-06-12 11:37:25 985

原创 android 检测手机是否被Root

import android.text.TextUtils;import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;/** * 使用 boolean isRoot = PACheckSysUtils.isRoot(); * 检测手机是否被Root */public ...

2019-06-12 11:34:21 3118

原创 android Log日志管理类,日志保存到文件中去

1.首先需要一个ApplicationProxy的代理类,详情见:博文地址2.Log日志管理类包括保存LOG和多进程分开写日志文件,避免产生脏数据(目前最多支持一个APP有一到两个进程的log管理,有多个进程还得修改), 但是写到文本中的顺序不一定对,因为是多线程去写,不知道那个日志先写到文件中去。 使用AS的deviceFileExplorer工具可查看"data/包名/files/...

2019-06-12 11:16:38 2717 1

原创 android 从TCP实现一个即时聊天app的简单理论过程

注:本人适用于有socket基础和接触过XMPP的人一起探讨。不喜勿喷,纯属,闲了总结一下工作经验和小分享而已。一。socket基础知识TCP与UDP区别总结:1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。(其实用那个协议开发IM,对android开发人员来说,业务上的写法区别不大)2、TCP提供可靠的服务。也就是说,通过TC...

2019-04-30 14:19:03 2119

原创 android sqlite 升级数据库

1.创建表String sql = "CREATE TABLE IF NOT EXISTS " + “表名” + " (_id INTEGER PRIMARY KEY AUTOINCREMENT," + "列名 TEXT," + "列名 INT)";db.execSQL(sql);2.表新增列String sql = "ALTER TABLE " ...

2019-04-29 13:32:49 344

原创 android 权限库,拿来就能用

mainfest.xml先声明你需要得到的权限。使用方式:package com.example.huangrenqian833.myapplication;import android.Manifest;import android.content.Intent;import android.os.Bundle;import android.support.annotatio...

2018-12-25 16:42:09 589

原创 android 水印

 使用方式:@Override protected void onStart() { super.onStart(); WaterMarkBg.setWaterBg(this, frameView, false)); } package com.paic.lib.base.widget.views;import a...

2018-12-24 16:31:54 275

原创 android 线程池工具类,经过验证可直接使用

使用方式:PAsyncTask.getInstance().execute(new Runnable() { @Override public void run() { // 处理耗时操作 }});private Future&lt;?&gt; readerThread; readerThread = PAsyncTask.ge...

2018-12-24 15:38:59 816

原创 ApplicationProxy 代理类

使用方式:ApplicationProxy.getInstance().getApplication();ApplicationProxy.getInstance().getApplicationContext();需要要在public class BaseApplication extends Application{ ApplicationProxy.getIns...

2018-12-20 17:08:03 1337

原创 Gson 工具类

import com.google.gson.Gson;import com.google.gson.JsonArray;import com.google.gson.JsonElement;import com.google.gson.JsonParser;import java.lang.reflect.Type;import java.util.ArrayList;impor...

2018-12-20 14:39:46 234

原创 Android SDK制作流程

如何让自己的SDK更安全?让自己的逻辑对用户完全透明? 1.利用好混淆 2.建造者模式 3.尽量抛出异常,让接入者看到在Android Eclipse时代,如果你有一个Android Library项目,可以很容易的导出jar文件,然后在其他项目中很方便的引用,aar和jar类似,区别就是一个Android Library项目导出的jar文件不能包含资源文件,比如一些drawable文件、xml资...

2018-03-15 18:27:32 6045 3

原创 android 百分百能正确判断软键盘是否弹出,有个前提条件......

1.activity--&gt;android:windowSoftInputMode="adjustResize|stateHidden"(前提条件)2.如果高版本出现输入框焦点问题,可由listView改为recycleView3.监听注册监听,同时需要取消监听本listener上代码:import android.app.Activity;import android.graphics.R...

2018-03-12 16:29:41 1308

转载 从根源解决WebView内存泄漏

本人CSDN和github博客链接地址和各项目下载链接地址优课优信:点击打开链接路路鲜:点击打开链接探望care+:点击打开链接CSDN博客链接地址:点击打开链接github博客链接地址:点击打开链接webview引起的内存泄漏主要是因为org.chromium.android_webview.AwContents 类中注册了component callbacks,但是未正常反注册而导致的。org

2018-01-08 14:10:59 5813

转载 Android 内存泄露和性能检测

Android Studio的内存分析界面一般分析内存泄露, 首先运行程序,打开日志控制台,有一个标签Memory ,我们可以在这个界面分析当前程序使用的内存情况, 一目了然, 我们再也不需要苦苦的在logcat中寻找内存的日志了。图中蓝色区域,就是程序使用的内存, 灰色区域就是空闲内存当然,Android内存分配机制是对每个应用程序逐步增加, 比如你程序当前使用30M内存, 系统可能会给你分

2018-01-06 13:29:28 14486

转载 Android性能优化

前言Android性能优化主要包括布局优化、绘制优化、内存泄露优化、响应速度优化、ListView优化、Bitmap优化、线程优化以及一些优化建议.布局优化减少布局文件的层级(测量/布局/绘制的时间减少):可以使用RelativeLayout来减少嵌套,从而达到减少层级的目的,另外在相同层级的情况下使用LinearLayout(相比于RelativeLayout更高效)

2018-01-06 11:42:31 183

转载 Android 源码中的设计模式

面向对象的六大原则单一职责原则  所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。通俗的说,即一个类只负责一项职责,将一组相关性很高的函数、数据封装到一个类中。开闭原则  对于扩展是开放的,这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以

2017-12-20 17:29:18 279

转载 APK瘦身套路-项目优化篇

1.项目结构瘦身套路套路一:引入库的优化去掉无用的库       项目中如果apk支持的最低版本是API14,而代码中没有用到高于api14的api就可以考虑去掉整个android support库。最小化集SDK       很多小伙伴在项目中都引入了友盟工具,但是很多时候我们往往只需要友盟分享,那么我们可以把项目引入的友盟推送去掉,只集成友盟分享SD

2017-12-19 17:26:04 245

转载 实现Activity跳转动画的五种方式

文本中我们将讲解activity切换动画相关的知识点,这里的切换动画指的是是activity跳转时的动画效果。这里总结了一下,有五种方式实现activity切换时实现动画效果。下面我将依次介绍一下每种实现activity切换动画效果的实现方式。在介绍activity的切换动画之前我们先来说明一下实现切换activity的两种方式:调用startActivity方法启动一个新

2017-12-18 11:26:20 8472 1

原创 推荐一下github上一键集合的微信和支付宝支付

1.微信支付接入流程:主要几个步骤:1.统一下单(放在服务端,需要加密参数)2.生成支付参数(放在服务端,需要生成签名)3.调用客户端SDK发起支付4.服务端异步接收支付结果2.支付宝支付接入流程:生成支付参数(放在服务端,需要生成签名)调用客户端SDK发起支付服务端异步接收支付结果github地址:点击打开链接生成支付参数(

2017-12-13 15:20:22 8334

转载 一个千万量级的APP使用的一些第三方库

.背景前段时间在调研第三方推送服务的时候,反编译了一部分市面上比较流行的APP。其中一个无论是在设计还是功能上都堪称典型,这款APP总用户数超千万(其官网数据),在国内某手机助手上支持率超97%。可见其受欢迎程度(APP的名字就不说了)。反编译这个APP后发现其使用的第三方库也很有代表性。这里介绍下他们使用的这些第三方库,给需要的童鞋一些参考。1.Android Design Support

2017-11-09 16:55:56 234

转载 Activity 全解析

一、 activity的生命周期正常生命周期1.正常打开单个Activity,然后退出应用:这种情况是最普通的状况,Activity的生命周期会按照上图从上到下的方式走。即:onCreate --> onStart --> onResume --> 运行--> 按返回键结束程序--> onPause-->onStop-->onDestory2.打开一个Activity A,然后再打

2017-11-03 16:05:48 434

原创 RxAndroid响应式开发

Rx含义是响应式编程,其本质就是观察者模式,以观察者(Observer)和订阅者(Subscriber)为基础的异步响应方式。   Observables发出一系列事件,Subscribers处理这些事件。这里的事件可以是任何你感兴趣的东西(触摸事件,异步接口调用返回的数据等)Rx模式以及优点使用观察者模式1、创建:Rx可以方便的创建事件流和数据流2、组

2017-11-03 14:52:42 175

转载 Android新特性ConstraintLayout

开始下面我们开始用边学边练的方式来进行学习,首先打开你的Android Studio,并新建一个ConstraintLayoutTest项目。另外,确保你的Android Studio是2.2或以上版本。为了要使用ConstraintLayout,我们需要在app/build.gradle文件中添加ConstraintLayout的依赖,如下所示。dependencies {

2017-11-03 10:15:14 239

转载 Luban(鲁班) —— Android图片压缩工具,仿微信朋友圈压缩策略。

项目描述目前做App开发总绕不开图片这个元素。但是随着手机拍照分辨率的提升,图片的压缩成为一个很重要的问题。单纯对图片进行裁切,压缩已经有很多文章介绍。但是裁切成多少,压缩成多少却很难控制好,裁切过头图片太小,质量压缩过头则显示效果太差。于是自然想到App巨头“微信”会是怎么处理,Luban(鲁班)就是通过在微信朋友圈发送近100张不同分辨率图片,对比原图与微信压缩后的图片逆向推算

2017-11-02 14:09:41 650

转载 Android中各种Span的用法

前言在android.text.style包下,有一些Span类,可以提供我们完成一些在TextView中的特殊内容。(比如:部分内容颜色、字体、大小不同等等,更有部分字体可点击。)还有一个SpannableStringBuilder,可以帮助我们设置Span。底下也有全部的源代码。SpannableStringBuilderSpannableStrin

2017-11-02 10:29:36 10870 1

转载 android 仿QQ,微信群组里的@功能,支持@多人,并能一键删除,能获取上传对应的id(修改版)

首先注明该文章是借签别人的博客,原文博文地址点击打开链接android 仿QQ,微信群组里的@功能,支持@多人,并能一键删除,能获取上传对应的id这个需求来源:本人做集成环信聊天时,项目需要@功能,但是环信并没有提供@功能。环信@功能地址点击打开链接UXchatActivitypackage ucux.app.activitys;import andro

2017-03-09 11:47:36 1236 2

android(kotlin版本)下的XMPP对应smack-4.2.1,实现登录,注册,发单聊,加聊天室,发群聊等简单功能

直接当一个model导入.入口是startActivity(new Intent(this, com.xmpp.xmppchat.LoginActivity.class));.要重新修改IP和端口号,比之前的JAVA版本,实现了语音和照片拍照等功能

2018-01-06

android下的XMPP对应smack-4.2.1,实现登录,注册,发单聊,加聊天室,发群聊等简单功能

android下的XMPP对应smack-4.2.1,实现登录,注册,发单聊,加聊天室,发群聊等简单功能

2017-11-27

MVP+Okhttp+Gson+Glide+DBFlow

抽取一下之前项目的框架,做个笔记,最近会推出修改网络框架的版本

2016-11-04

文件管理器

简单文件管理器的源代码说明,这是一个初步的代码,只能拿来看看。哈哈。

2013-10-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除