自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 Proguard那些事儿

提到Proguard,做Android的小伙伴想必是耳熟能详的,它虽然不是由Google开发维护的,Google却将其内置在了Android开发的SDK包中,在编译过程中起到了压缩、优化、混淆Android代码的作用,可以说是Android开发必不可少的一个工具。Proguard做了什么如下图所示,在Android应用源码的编译过程中,Proguard将Java bytecode转化为了Optimized Java bytecode,也就是说,Proguard起到了优化Java字节码的作用 。Pro

2021-12-22 22:40:57 887

原创 Git内部原理分析

Git内部原理分析Git基本认知一种分布式版本控制系统集中式版本控制系统分布式版本控制系统记录快照 而非差异比较基于差异的版本控制基于快照流的版本控制更高效且可靠Git分区Git对象管理对象的存取数据对象树对象提交对象标签对象Git引用Git分支HEAD引用标签引用远程引用常用命令揭秘git statusgit initgit addgit commitgit resetgit checkout本文使用的素材大部分来自git官方文档。Git基本认知一种分布式版本控制系统Git是一种分布式版本控制系统

2021-12-22 00:23:21 561

原创 API网络数据安全

TCP/IP作为互联网使用的标准协议集,在设计之初就是建立在接入主机互相信任的前提下,缺乏对安全方面的考虑,并且为了保证网络的开放性,TCP/IP协议的内容是完全公开的。因此,只使用TCP/IP协议在互联网上传输的数据,实际上都是不安全的。在SDK开发场景下,通常会在API设计时加入一些网络安全的措施,这里主要从数据防泄露、内容防篡改、身份放伪装、请求防重放几个方面分析如何保证API网络数据安全...

2019-08-06 15:57:12 1468

原创 Pjsip编译脚本Android/IOS

整理了一份pjsip库的编译脚本,实现一行命令编译PJSIP的Android/IOS库。Github地址https://github.com/wei-gong/Android-IOS-Pjsip-Compile-Script编译Android使用的.so库将下面的脚本文件拷贝到pjsip的根目录中,直接运行即可开始编译,生成的so库在pjsip-apps/src/swig/java/and...

2019-05-16 23:47:51 666

原创 模拟Doze模式进行调试

Doze是Android6.0推出的一种省电模式,手机在不插电并静置不动一段时间后,会进入IDLE状态,在这个状态下会阻止应用访问网络,并且会推迟Amarm、Job、Syn等操作。为了方便调试应用在IDLE状态下的表现,可以通过adb命令使设备快速进入IDLE状态。进入IDLE状态#让设备电池进入未连接充电器的模式adb shell dumpsys battery unplug#...

2018-12-25 15:31:20 560

原创 Android消息推送总结

现状由于国内防火墙以及各手机厂商系统定制的原因,Android系统内置的GCM(已升级到FCM)推送服务在国内基本不能用,大家只能各自发挥,有的像QQ、微信一样自己搭建推送服务,有的集成像极光、个推等专门做推送服务的第三方库,有的则使用手机厂商提供的推送服务如华为推送、小米推送。但即便有这么多选择,目前也仍然没有一家能做到百分百可靠,究其根源还是各大厂商各自为战缺乏统一规范所致。而由于推送服务都...

2018-12-24 21:38:57 4609 1

原创 Android自定义控件之短信验证码自动填充

VerifyCodeViewVerifyCodeView是一个用于输入验证码的Android自定义控件,它支持数字类型的验证码,支持自定义外观,并且支持短信验证码自动填充。项目地址:https://github.com/wei-gong/VerifyCodeView在项目中引入VerifyCodeViewGradledependencies { compile 'co...

2018-12-11 16:56:34 1768 3

原创 字符编码基础知识

本文主要是对字符编码相关基础知识的系统梳理,通过系统地了解字符编码的相关知识,能对很多由编码不匹配引起的乱码等问题有更深入地理解。字符集与字符编码字符集字符集是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同。字符编码由于计算机只能识别二进制数据,如果计算机要准确的处理各种字符集,则需要将字符数据转换为二进制数据。而字符编码规定了如何将字符流转换为字节流。区别在Unic...

2018-11-26 16:31:24 771

原创 Android默认开启USB调试且不弹授权对话框

这里使用的Android源码是基于Android4.4的。如下图所示,修改persist.sys.usb.config=mtp,adb,修改ro.adb.secure=0。这里我修改的是device目录下对应厂家和产品的脚本,如果需要统一修改可以去build/core/main.mk中对应修改。...

2018-10-17 23:54:16 11007

原创 Android实现局域网adb无线调试

在研发过程中,有时会遇到需要不借助USB线调试的情况,这时就需要用到adb无线调试。要使用无线调试,一定要PC机与Android机保证在同一个局域网内。1、首先用USB线先连接设备,打开PC端命令窗口,输入以下命令: #连接adb adb shell #设置adb远程调试端口 setprop service.adb.tcp.port 5555 #启动adbd start adbd...

2018-10-17 23:28:22 3586 3

原创 Android下实现局域网设备发现与通信

Android下实现局域网设备发现与通信在使用Android开发智能设备时,一般会分为用于遥控与管理的Host端,和用于执行个性功能的Slave端,二者可以借助网络或蓝牙等途径实现通信。局域网设备发现如果是借助网络通信,那就必须知道对方的ip地址,而常见的网络环境中ip地址一般是通过DHCP服务动态分配的,所以事先无法确定对方的ip地址。为了确定对方的地址,可以通过向局域网内发送查找设备的...

2018-10-17 21:47:11 13904 6

原创 Android下实现STL模型3D渲染

Android下实现STL模型3D渲染STL文件STL文件是在计算机图形应用系统中,用于表示三角形网格的一种文件格式,是最多快速原型系统所应用的标准文件类型。STL文件有两种:一种是ASCII明码格式,另一种是二进制格式。ASCII格式ASCII码格式的STL文件逐行给出三角面片的几何信息,每一行以1个或2个关键字开头。在STL文件中的三角面片的信息单元 facet 是一个带矢量...

2018-10-15 21:48:40 4249 4

原创 Android中使用序列化

Android中使用序列化序列化与反序列化序列化:将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。反序列化:序列化的逆向操作,通过从存储区中读取对象的状态,重新创建该对象。使用目的及场景使对象持久化一般情况下,只有当JVM处于运行时,java对象才可能存在,对象的生命周期不会比JVM的生命周期更长。但在现实应用中,存在JVM停止...

2018-09-30 23:56:33 990

原创 在Android中使用JNI

在Android中使用JNIJNI简介JNI是Java Native Interface的缩写,使用JNI能够使运行在Java虚拟机上的程序和本地程序互相调用,本地程序可以是其它语言编写的,如C、C++ 或者汇编语言。当程序无法完全使用Java编写时(例如需要调用C/C++的库、与硬件进行交互、提高程序的性能、提高安全性防止反编译),可以通过JNI来编写本地方法。JNI还可以用于修改现有的本地...

2018-09-22 11:05:13 4202

原创 密码学基础

密码学基础​ 注:本文不涉及复杂的算法,主要是梳理密码学知识体系,为以后系统地深入地学习打好基础。​ 整理本文的过程中,主要参考了以下文档:​ https://wenku.baidu.com/view/e837a8a86137ee06eff918a3.html?sxts=1534474835258​ https://wenku.baidu.com/view/9763...

2018-08-20 23:53:48 24346 2

原创 Android组件化总结

Android组件化总结1、什么是组件化​ 组件化指将一个工程拆分为多个子Module,每个Module作为一个组件。组件内部功能单一,具有高复用性,可独立编译与打包运行,组件之间互相不依赖但可以互相通信,在最终打包时可按需求任意搭配组合各组件。2、为什么要组件化组件化能有效的提高工作效率,控制产品质量,主要体现在以下几个方面:大幅提升编译速度。传统的工程架构,稍微改...

2018-07-31 01:05:53 490

原创 Databinding之RecyclerViewAdapter使用与封装

Databinding之RecyclerViewAdapter使用与封装RecyclerViewAdapter大家都不陌生,那么在使用Databinding时,RecyclerViewAdapter该如何编写呢?本文用一个邮箱类型列表作为案例,来讲解在使用Databinding时如何编写RecyclerViewAdapter,并且如何有效的封装RecyclerViewAdapter。...

2018-07-15 02:20:14 3908 2

原创 Unbuntu14.04下MailCore2 Android编译过程

Unbuntu14.04下MailCore2 Android编译过程MailCore2简述MailCore2是一个旨在减轻使用电子邮件协议的痛苦的库。它能运行在iOS、OS X、Android、Windows和Linux上,支持SMTP、IMAP、POP3、RCF822、MIME和HTML消息渲染。https://github.com/MailCore/mailcore2编...

2018-06-10 23:19:14 808

原创 Android系统插入USB设备自动授权不弹出对话框

Android系统插入USB设备时,系统会弹出询问权限的对话框,现在需要不弹对话框而直接授权。修改/frameworks/base/packages/SystemUI/src/com/android/systemui/usb/UsbPermissionActivity.java ,直接注释setupAlert()方法,并将mPermissionGranted设为true即可。...

2018-03-28 14:07:01 14878 5

原创 Android在保留原launcher程序前提下,将应用设为默认Launcher

    将应用设为Launcher很简单,只需在AndroidManifest.xml文件中添加以下两条属性即可:    <category android:name="android.intent.category.HOME" />    <category android:name="android.intent.category.DEFAULT" />    然而这样...

2018-03-28 13:45:35 8241 3

观察者模式简单demo

一个简单的用java实现的观察者模式DEMO

2015-10-30

空空如也

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

TA关注的人

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