自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(16)
  • 资源 (4)
  • 收藏
  • 关注

原创 音频PCM转WAV

public void pcmToWav(String inFilename, String outFilename) { FileInputStream in; FileOutputStream out; long totalAudioLen; long totalDataLen; long longSampleRate = mSampleRate; int channels = mChannel == AudioFormat.CHANNEL_IN_MON.

2021-02-23 17:41:03 100

原创 2021-02-23

public class LiveDataBus { private static LiveDataBus liveDataBus = new LiveDataBus(); Map<String, MutableLiveData<Object>> map; public LiveDataBus() { this.map = new HashMap<>(); } public static LiveDataB.

2021-02-23 16:29:11 65

原创 WebRTC视频画面截图 SurfaceViewRenderer截图

SurfaceViewRenderer.addFrameListener(new EglRenderer.FrameListener() { @Override public void onFrame(Bitmap bitmap) { //此bitmap就是画面 } }, 1f);这个很简单,如果画面还叠加的别的画面,那就拼接bitmap,也不复杂。...

2020-05-20 18:03:27 1832 1

原创 WebRTC竖屏正常横屏不显示本地视频

如果你的视频通话竖屏正常,横屏不显示本地视频的原因是创建了多个EglBase对象实例,只需要改成进入视频界面创建一个EglBase对象实例即可。这个问题在OPENVIDU官方给的示例代码中也存在。

2020-05-20 13:39:29 725

原创 WebRtc安卓实践教程

背景就不介绍了,本文详细介绍安卓webrtc流程。1.先建立socket连接,建议对socket用接口进行封装(指令比较多)。2.一般视频方案建议后台采取类似房间的处理方式(单聊也这样处理,对方正在通话或者不在线就由后台通过socket返回相应状态),这些是扩展功能,不详细介绍,根据自己项目进项扩展(可以集成推送服务等)。3.先已单人视频为例,进来视频界面 初始化自己Su...

2020-03-10 08:54:09 662

原创 Android 中 GLSurfaceView 截图

看到网上关于这个大部分写的都不对,贴下正确代码 private void captureBitmap() { glSurfaceView.queueEvent(new Runnable() { @Override public void run() { EGL10 egl = (EGL10)...

2020-01-07 17:36:46 635 3

原创 时间指针计算

mCalendar = Calendar.getInstance();mCalendar.setTimeInMillis(now);final float seconds = (mCalendar.get(Calendar.SECOND) + mCalendar.get(Calendar.MILLISECOND) / 1000f);final float secondsRo...

2019-10-10 14:00:33 552

原创 okhttp请求示例代码

package com.sample.httControler;import android.content.Context;import android.text.TextUtils;import org.json.JSONObject;import java.io.IOException;import java.util.List;import java.util.conc...

2018-09-29 11:05:34 491

原创 android.content.res.Resources$NotFoundException: Resource ID #0xfffffe6c

BaseMultiItemQuickAdapter使用中报android.content.res.Resources$NotFoundException: Resource ID #0xfffffe6c   错误,先检查了资源,然而并没有发现问题,最后发现   model中@Overridepublic int getItemType() { return getType();}中定义...

2018-04-28 15:02:09 4297 1

原创 转圈的动画

项目中要用到的一个动画,比较简单,记录一下public class AnimView extends View { private int mStop = 90; private int mStart = 90; private Paint mPaint; private static final int TARGET_DEGREE = 270; p...

2018-04-12 11:25:32 186

原创 安卓输入键盘适配方案

登陆界面一般容易出现键盘遮挡问题,如下图可以看到,登录按钮被挡住了。我们是不是可以不用系统的键盘适配,自己做适配。我们只需要监听一下键盘的高度,在界面根节点添加ScroolView然后滚动内容不是就可以解决这个问题了先设置键盘兼容模式android:windowSoftInputMode="adjustUnspecified"系统不做处理,交由我们处理键盘。实现一下OnGlobalLayoutLi...

2018-03-14 20:29:47 918

原创 密码字典生成

public class NetConnectionLogin extends NetConnectionThread { private FRequestCallBack mCallback; public NetConnectionLogin(Context mContext, FRequestCallBack mCallback) { super(mContext, false, true,

2017-12-16 09:17:21 688

转载 Android数据库大批量数据插入优化

对比在android中批量插入数据的3中方式对比(各插入1W条数据所花费的时间):1、 一个一个插入 1 public static boolean insert(SQLiteOpenHelper openHelper, 2 RemoteAppInfo appInfo) { 3 if (null == appInfo) { 4

2017-10-10 11:06:30 919

原创 Android ListView 中更新 ProgressBar 进度完整demo

public class ProgressActivity extends Activity { private List mTasks = new ArrayList<>(); private ListView mListView; @Override protected void onCreate(@Nullable Bundle savedInstance

2017-09-26 15:49:33 2062 1

原创 resources-release-stripped.ap_' specified for property 'resourceFile' does not exist

先参考http://blog.csdn.net/tangyeegg/article/details/52622426这篇文章,如果还没解决把 shrinkResources 改为 false就可以了

2016-12-15 18:44:25 201

原创 java类成员

在Java类中只能包含成员变量、方法、构造器、初始化块、内部类(包括接口、枚举)、5种成员,static可以修饰成员变量、方法、内部类、初始化块,以static修饰的成员就是类成员。类成员属于整个类,而不属于单个对象。类变量属于整个类,当系统第一次准备使用该类时,系统会为该类变量分配存储空间,类变量开始生效,知道该类被卸载,该类的类变量占有的内存才被系统的垃圾回收器回收。类变量的生存范围几乎等

2016-07-12 21:25:51 159

ShareSDK.zip

现在onkeyShare不支持下载链,这个是下载的最新版和以前一样,用法也一样,初始化用代码初始化,注意清单文件配置和资源拷贝到项目里不要忘了

2020-07-08

轻量级java ee企业应用实战 第4版 pdf

轻量级Java EE企业应用实战(第4版) 作者: 李刚 出版社: 电子工业出版社 副标题: Struts 2+Spring 4+Hibernate整合开发

2017-11-06

深入理解Android之Gradle.pdf

深入理解Android 之Gradle Gradle 是当前非常“劲爆”得构建工具。本篇文章就是专为讲解Gradle 而来。介绍Gradle 之前,先说点题外话。 一、题外话 说实话,我在大法工作的时候,就见过Gradle。但是当时我一直不知道这是什么东西。 而且大法工具组的工程师还将其和Android Studio 大法版一起推送,偶一看就更没兴趣了。 为什么那个时候如此不待见Gradle 呢?因为我此前一直是做ROM 开发。在这个层面上,我 们用make,mm 或者mmm 就可以了。而且,编译耗时对我们来说也不是啥痛点,因为用 组内吊炸天的神机服务器完整编译大法的image 也要耗费1 个小时左右。所以,那个时侯 Gradle 完全不是我们的菜。 现在,搞APP 开发居多,编译/打包等问题立即就成痛点了。比如:  一个APP 有多个版本,Release 版、Debug 版、Test 版。甚至针对不同APP Store 都有不同的版本。在以前ROM 的环境下,虽然可以配置Android.mk,但是需要依 赖整个Android 源码,而且还不能完全做到满足条件,很多事情需要手动搞。一个 app 如果涉及到多个开发者,手动操作必然会带来混乱。  library 工程我们需要编译成jar 包,然后发布给其他开发者使用。以前是用 eclipse 的export,做一堆选择。要是能自动编译成jar 包就爽了。 上述问题对绝大部分APP 开发者而言都不陌生,而Gradle 作为一种很方便的的构建工 具,可以非常轻松得解决构建过程中的各种问题。 二、

2017-09-23

Android软件安全与逆向分析.pdf

目 录 第1章  Android程序分析环境搭建  1 1.1  Windows分析环境搭建  1 1.1.1  安装JDK  1 1.1.2  安装Android SDK  3 1.1.3  安装Android NDK  5 1.1.4  Eclipse集成开发环境  6 1.1.5  安装CDT、ADT插件  6 1.1.6  创建Android Virtual Device  8 1.1.7  使用到的工具  9 1.2  Linux分析环境搭建  9 1.2.1  本书的Linux环境  9 1.2.2  安装JDK  9 1.2.3  在Ubuntu上安装Android SDK  10 1.2.4  在Ubuntu上安装Android NDK  11 1.2.5  在Ubuntu上安装Eclipse集成开发环境  12 1.2.6  在Ubuntu上安装CDT、ADT插件  13 1.2.7  创建Android Virtual Device  13 1.2.8  使用到的工具  15 1.3  本章小结  15 第2章  如何分析Android程序  16 2.1  编写第一个Android程序  16 2.1.1  使用Eclipse创建Android工程  16 2.1.2  编译生成APK文件  19 2.2  破解第一个程序  20 2.2.1  如何动手?  20 2.2.2  反编译APK文件  20 2.2.3  分析APK文件  21 2.2.4  修改Smali文件代码  26 2.2.5  重新编译APK文件并签名  26 2.2.6  安装测试  27 2.3  本章小结  28 第3章  进入Android Dalvik虚拟机  29 3.1  Dalvik虚拟机的特点——掌握Android程序的运行原理  29 3.1.1  Dalvik虚拟机概述  29 3.1.2  Dalvik虚拟机与Java虚拟机的区别  29 3.1.3  Dalvik虚拟机是如何执行程序的  34 3.1.4  关于Dalvik虚拟机JIT(即时编译)  36 3.2  Dalvik汇编语言基础为分析Android程序做准备  37 3.2.1  Dalvik指令格式  37 3.2.2  DEX文件反汇编工具  39 3.2.3  了解Dalvik寄存器  40 3.2.4  两种不同的寄存器表示方法——v命名法与p命名法  42 3.2.5  Dalvik字节码的类型、方法与字段表示方法  43 3.3  Dalvik指令集  44 3.3.1  指令特点  45 3.3.2  空操作指令  45 3.3.3  数据操作指令  46 3.3.4  返回指令  46 3.3.5  数据定义指令  46 3.3.6  锁指令  47 3.3.7  实例操作指令  47 3.3.8  数组操作指令  48 3.3.9  异常指令  48 3.3.10  跳转指令  48 3.3.11  比较指令  49 3.3.12  字段操作指令  50 3.3.13  方法调用指令  50 3.3.14  数据转换指令  51 3.3.15  数据运算指令  51 3.4  Dalvik指令集练习——写一个Dalvik版的Hello World  52 3.4.1  编写smali文件  52 3.4.2  编译smali文件  54 3.4.3  测试运行  54 3.5  本章小结  55 第4章  Android可执行文件  56 4.1  Android程序的生成步骤  56 4.2  Android程序的安装流程  59 4.3  dex文件格式  66 4.3.1  dex文件中的数据结构  66 4.3.2  dex文件整体结构  68 4.3.3  dex文件结构分析  71 4.4  odex文件格式  80 4.4.1  如何生成odex文件  80 4.4.2  odex文件整体结构  81 4.4.3  odex文件结构分析  83 4.5  dex文件的验证与优化工具dexopt的工作过程  88 4.6  Android应用程序另类破解方法  91 4.7  本章小结  93 第5章  静态分析Android程序  94 5.1  什么是静态分析  94 5.2  快速定位Android程序的关键代码  94 5.2.1  反编译apk程序  94 5.2.2  程序的主Activity  95 5.2.3  需重点关注的Application类  95 5.2.4  如何定位关键代码——六种方法  96 5.3  smali文件格式  97 5.4  Android程序中的类  100 5.4.1  内部类  100 5.4.2  监听器  102 5.4.3  注解类  105 5.4.4  自动生成的类  108 5.5  阅读反编译的smali代码  110 5.5.1  循环语句  110 5.5.2  switch分支语句  115 5.5.3  try/catch语句  121 5.6  使用IDA Pro静态分析Android程序  127 5.6.1  IDA Pro对Android的支持  127 5.6.2  如何操作  128 5.6.3  定位关键代码——使用IDA Pro进行破解的实例  132 5.7  恶意软件分析工具包——Androguard  135 5.7.1  Androguard的安装与配置  135 5.7.2  Androguard的使用方法  137 5.7.3  使用Androguard配合Gephi进行静态分析  144 5.7.4  使用androlyze.py进行静态分析  148 5.8  其他静态分析工具  152 5.9  阅读反编译的Java代码  152 5.9.1  使用dex2jar生成jar文件  152 5.9.2  使用jd-gui查看jar文件的源码  153 5.10  集成分析环境——santoku  154 5.11  本章小结  156 第6章  基于Android的ARM汇编语言基础——逆向原生!  157 6.1  Android与ARM处理器  157 6.1.1  ARM处理器架构概述  157 6.1.2  ARM处理器家族  158 6.1.3  Android支持的处理器架构  159 6.2  原生程序与ARM汇编语言——逆向你的原生Hello ARM  160 6.2.1  原生程序逆向初步  160 6.2.2  原生程序的生成过程  162 6.2.3  必须了解的ARM知识  164 6.3  ARM汇编语言程序结构  166 6.3.1  完整的ARM汇编程序  166 6.3.2  处理器架构定义  167 6.3.3  段定义  168 6.3.4  注释与标号  169 6.3.5  汇编器指令  169 6.3.6  子程序与参数传递  170 6.4  ARM处理器寻址方式  170 6.4.1  立即寻址  170 6.4.2  寄存器寻址  171 6.4.3  寄存器移位寻址  171 6.4.4  寄存器间接寻址  171 6.4.5  基址寻址  171 6.4.6  多寄存器寻址  171 6.4.7  堆栈寻址  172 6.4.8  块拷贝寻址  172 6.4.9  相对寻址  172 6.5  ARM与Thumb指令集  173 6.5.1  指令格式  173 6.5.2  跳转指令  174 6.5.3  存储器访问指令  175 6.5.4  数据处理指令  177 6.5.5  其他指令  184 6.6  用于多媒体编程与浮点计算的NEON与VFP指令集  185 6.7  本章小结  186 第7章  Android NDK程序逆向分析  187 7.1  Android中的原生程序  187 7.1.1  编写一个例子程序  187 7.1.2  如何编译原生程序  188 7.2  原生程序的启动流程分析  194 7.2.1  原生程序的入口函数  194 7.2.2  main函数究竟何时被执行  198 7.3  原生文件格式  199 7.4  原生C程序逆向分析  200 7.4.1  原生程序的分析方法  200 7.4.2  for循环语句反汇编代码的特点  204 7.4.3  if...else分支语句反汇编代码的特点  208 7.4.4  while循环语句反汇编代码的特点  211 7.4.5  switch分支语句反汇编代码的特点  215 7.4.6  原生程序的编译时优化  218 7.5  原生C++程序逆向分析  222 7.5.1  C++类的逆向  222 7.5.2  Android NDK对C++特性的支持  225 7.5.3  静态链接STL与动态链接STL的代码区别  227 7.6  Android NDK JNI API逆向分析  232 7.6.1  Android NDK提供了哪些函数  232 7.6.2  如何静态分析Android NDK程序  233 7.7  本章小结  235 第8章  动态调试Android程序  236 8.1  Android动态调试支持  236 8.2  DDMS的使用  237 8.2.1  如何启动DDMS  237 8.2.2  使用LogCat查看调试信息  238 8.3  定位关键代码  240 8.3.1  代码注入法——让程序自己吐出注册码  240 8.3.2  栈跟踪法  244 8.3.3  Method Profiling  247 8.4  使用AndBug调试Android程序  250 8.4.1  安装AndBug  251 8.4.2  使用AndBug  251 8.5  使用IDA Pro调试Android原生程序  254 8.5.1  调试Android原生程序  255 8.5.2  调试Android原生动态链接库  256 8.6  使用gdb调试Android原生程序  260 8.6.1  编译gdb与gdbserver  260 8.6.2  如何调试  262 8.7  本章小结  264 第9章  Android软件的破解技术  265 9.1  试用版软件  265 9.1.1  试用版软件的种类  265 9.1.2  实例破解——针对授权KEY方式的破解  265 9.2  序列号保护  271 9.3  网络验证  272 9.3.1  网络验证保护思路  272 9.3.2  实例破解——针对网络验证方式的破解  273 9.4  In-app Billing(应用内付费)  277 9.4.1  In-app Billing原理  277 9.4.2  In-app Billing破解方法  280 9.5  Google Play License保护  281 9.5.1  Google Play License保护机制  281 9.5.2  实例破解——针对Google Play License方式的破解  283 9.6  重启验证  284 9.6.1  重启验证保护思路  285 9.6.2  实例破解——针对重启验证方式的破解  285 9.7  如何破解其他类型的Android程序  296 9.7.1  Mono for Android开发的程序及其破解方法  296 9.7.2  Qt for Android开发的程序及其破解方法  301 9.8  本章小结  309 第10章  Android程序的反破解技术  310 10.1  对抗反编译  310 10.1.1  如何对抗反编译工具  310 10.1.2  对抗dex2jar  311 10.2  对抗静态分析  312 10.2.1  代码混淆技术  312 10.2.2  NDK保护  315 10.2.3  外壳保护  316 10.3  对抗动态调试  316 10.3.1  检测调试器  316 10.3.2  检测模拟器  317 10.4  防止重编译  318 10.4.1  检查签名  318 10.4.2  校验保护  319 10.5  本章小结  320 第11章  Android系统攻击与防范  321 11.1  Android系统安全概述  321 11.2  手机ROOT带来的危害  321 11.2.1  为什么要ROOT手机  321 11.2.2  手机ROOT后带来的安全隐患  322 11.2.3  Android手机ROOT原理  322 11.3  Android权限攻击  329 11.3.1  Android权限检查机制  329 11.3.2  串谋权限攻击  333 11.3.3  权限攻击检测  336 11.4  Android组件安全  339 11.4.1  Activity安全及Activity劫持演示  340 11.4.2  Broadcast Receiver 安全  343 11.4.3  Service安全  345 11.4.4  Content Provider安全  346 11.5  数据安全  347 11.5.1  外部存储安全  347 11.5.2  内部存储安全  348 11.5.3  数据通信安全  350 11.6  ROM安全  351 11.6.1  ROM的种类  352 11.6.2  ROM的定制过程  352 11.6.3  定制ROM的安全隐患  359 11.6.4  如何防范  360 11.7  本章小结  361 第12章  DroidKongFu变种病毒实例分析  362 12.1  DroidKongFu病毒介绍  362 12.2  配置病毒分析环境  363 12.3  病毒执行状态分析  364 12.3.1  使用APIMonitor初步分析  365 12.3.2  使用DroidBox动态分析  369 12.3.3  其他动态分析工具  373 12.4  病毒代码逆向分析  376 12.4.1  Java层启动代码分析  376 12.4.2  Native层启动代码分析  381 12.4.3  Native层病毒核心分析  393 12.5  DroidKongFu病毒框架总结  404 12.6  病毒防治  406 12.7  本章小结  406

2017-09-22

空空如也

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

TA关注的人

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