自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (5)
  • 收藏
  • 关注

原创 Android Studio 3.0 利用cmake搭建jni环境(很详细哦)

我用的Android Studio是3.0的版本,然后想搭建一下jni的环境。这里把自己遇到的问题和注意点都记录下。 首先是需要在android studio里面安装最基本的环境。 打开Default Preference里面查看SDK Tool选项。 CMake、LLDB、NDK这三个勾选上去,然后安装。 安装好了以后,在File-》Project Structure的SDK Loc...

2018-04-14 16:27:14 12643 5

原创 Retrofit2 源码分析

提示:文章比较长,可能需要较长时间阅读理解。一.如何使用Retrofit首先需要在gradle配置里面增加对retrofit的引用。compile'com.squareup.retrofit2:retrofit:2.2.0'我下载到的版本是2.2.0的版本。首先来看一下Retrofit是怎么用的。public interface GithubService{ @G...

2017-05-04 15:54:11 1085

原创 android用okhttp搭建网络通讯(附服务器端代码)

Okhttp是一个处理网络请求的开源项目,是安卓端最火热的轻量级框架。完全可以用来替代HttpUrlConnetion和HttpClient接下来我们就来实现一下这个用okhttp搭建一个android客户端访问java服务端的框架。因为网上有很多这样的例子,但是都是只有android客户端的,这篇文章把服务端代码也贴一下,这样有许多同学就可以完全在自己

2017-04-18 16:29:10 6554 6

原创 Android数据库sqlite封装心得

怎样稍微对Android的SQLiteDatabase进行相应的封装呢?SQLite是Android里面轻量实现的数据库, Android提供了SQLiteDatabase类用来创建和访问数据库对象。 当要打开和创建数据库对象时,会执行SQLiteDatabase .openOrCreateDatabase()方法;当要执行sql语句的时候,我们会执行SQLiteDatabas...

2017-02-19 08:37:19 4083

原创 利用FFmpeg完成 mp4格式转avi格式

我们可以用ffmpeg来完成一些很有用的功能。这篇文章就来说说,怎样用ffmpeg来完成视频格式的转换。首先在我们搭建好ffmpeg环境的基础上,如果这部分还不熟悉,可以去看这篇文章。https://blog.csdn.net/laibowon/article/details/103746594我们需要把...

2021-01-31 10:01:44 4224

原创 从零搭建mac上腾讯云搭建个人网站

在腾讯云购买云服务器后,创建 一个centerOs系统后,准备搭建一个网站1.下载tomcat首先上传文件我使用的是sftp工具,很简单,sftp root@你的公网ip地址,root代表你的账号,然后会叫你输入密码,输入成功后就表示连接上了。tomcat官网下载tomcat后,用mac的ftcp工具,将tomcat上传到腾讯云执行 tar -xvf apache-tomcat-9.0.41.tar -C /usr/local/Tomcat/然后到了tomcat目录/bin/start.

2020-12-15 14:46:37 696

原创 ffmpeg通过CMake集成到Android遇到的问题整理

在Android里面集成ffmpeg使用的时候,遇到了很多问题,这里整理一下。1.invalid suffix on literal; C++11 requires a space between literal and identifierC++需要再字符和变量之间增加空格号 snprintf(name, sizeof(name), "0x%"PRIx64, ch_layout);需改为 snprintf(name, sizeof(name), "0x%" PRIx64, ch_layo

2020-11-19 07:59:49 624

原创 React Native 的Redux

Redux是React Native用来管理全局状态的一个工具。React Native里面用到的是它的一个封装库,React Redux为什么要使用Redux呢?当你的Rn项目越来越庞大的时候,需要机制来管理组件的状态的时候。如何引入Redux?npm install redux react-redux怎么使用Redux呢?Action 每次改变需要发送一个Action通知,可以通过dispatch函数来做到。DispathmapDispatchToProps 用来声明哪些Aciton

2020-07-31 00:00:23 447

原创 react native 常用命令整理

react-native start运行react-native bundle生成bundle文件npm start

2020-06-30 19:53:19 159

原创 ffmpeg常用命令整理

1.改变帧率ffmpeg -i input.avi -r 30 output.mp42.调整视频分辨率ffmpeg -i input.avi -s 600 * 800 output_file3.裁剪/填充视频ffmpeg -i input -vf crop=iw/3:ih:0:0 output4.旋转视频帧ffplay -f lavfi -i testsrc -vf hflip5.模糊和锐化视频ffmpeg -i input.mpg -vf boxblur =1....

2020-05-30 20:19:54 251

原创 Android JetPack 初探

Jetpack里面分了几个系列,分别是Databinding、LifeCycle、LiveData。其实这些概念我们之前都接触过,比如Databinding就很类似于ButterKnife。

2020-03-29 21:19:24 138

原创 学习笔记-二叉树的遍历

笔记二叉树核心算法二叉树二叉树的分层遍历public class TreeNode { private TreeNode lChild; private TreeNode rChild; private TreeNode mRoot; private List<TreeNode> datas; private Object dat...

2020-02-29 22:34:36 92

原创 jenkins构建android项目

项目中有用到用jenkins自动构建android项目,这里把一些要注意的点罗列一下。 首先是下载jenkins,这个可以去jenkins官网上下载。官网的地址为:https://jenkins.io 然后是配置环境变量。1.jdk环境变量配置 2.AndroidSDk环境变量配置。配置jenkins SDK变量可以在 系统管理–系统设置–全局属性–Environment variables...

2020-01-31 11:19:46 371

原创 Mac Os下面编译FFmpeg

这篇文章主要是讲述如何在mac os下面编译FFmpeg。1.下载FFmpeg官网地址是http://ffmpeg.org/,然后找到mac os版本的,点击下载。下载后进行解压。因为FFmpeg需要用到ndk开发环境,同时还需要下载ndk安装包,安装后解压。2.配置环境启动终端,进入home目录创建.bash_profile文件(touch .bash_profile...

2019-12-29 21:41:16 856 1

原创 音视频基础词汇

帧率:帧率用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数(frames per second,简称 fps)或“赫兹”一般根据肉眼的接受程度,30fps就是可以接受的,60fps是明显提升交互感和逼真感的,超过75fps就不容易察觉有明显的流畅感了。
编码格式编码的目的是压缩数据量,采用编码算法压缩冗余数据。常用的编码格式有如下两种。1.MPEG2.H.26x码率码率...

2019-11-24 20:14:11 166

原创 kotlin的简洁特性

kotlin最大的好处就是使得代码简洁,但也没有使得运行效率比java降低很多。那么kotlin语言对比java语言,有哪些地方是比较简洁的呢?可空判断和非空判断kotlin中可空符号?的出现,让我们对于java中一些对于变量的判空的实现变得简洁if(mText != null )mText.setText(str_content)直接可以简写为mText?.setT...

2019-10-26 10:59:13 298 1

原创 触摸事件分发机制的实例分析(一)

我们知道android中的事件分发有三个重要方法onInterceptondispatchtoucheventontouchevent他们之间的关系可以用下面的伪代码来阐述:public boolean dispatchTouchEvent(MotionEvent e){ boolean consume = false; if(onInterceptTou...

2019-09-08 15:34:48 149

原创 触摸事件分发机制的实例分析(二)

在网上搜到了很有意思的一道题,仔细想一下这道题。答案是如果有ACTION_MOVE操作,那么ACTION_DOWN传递给C,ACTION_MOVE和ACTION_UP都传递给B,A没有获得任何事件。如果没有执行滑动操作,那么ACTION_DOWN和ACTION_UP都传递给C。因为事件会先从A-》B依次执行onInterceptTouchEvent,如果那一边返回了true,就说...

2019-07-05 10:45:43 247

原创 the android gradle plugin version is too old 解决方法

之前写的图文并茂的文章被黑了,找不回来了,所以这里只能凭记忆把之前的内容重写了一遍。这个问题主要就是说,在gradle打包的时候,有个gradle plugin 版本,就在我们项目工程下的build.gradle里面,通常我们都会声明classpath 'com.android.tools.build:gradle:3.0.0-alpha1'这里的版本号,就指的是我们用来打包的gra...

2019-06-19 09:43:48 5436 2

原创 jni知识笔记

1.如何在jni开发中日志打印在ndk层打日志cpp文件里面添加:#define LOGI(...)((void) __android_log_print(ANDROID_LOG_INFO,"native",__VA_ARGS__))cpp的头文件里面引入下面这句话#include <android/log.h>然后在build.gradle里面添加:...

2019-06-14 17:20:16 114

原创 单例模式跟静态类比有什么好处

在写代码当中,这两者都很常见,单例模式和静态类都能保证对象在全局只有一个实体。但是面试的时候,面试官往往会问,单例模式比静态类有哪些好处呢?为什么要使用单例模式呢?他们两者都可以是线程安全的。。1.单例模式是可以继承其他类或者实现其他接口的,而静态类不行。所以单例模式的扩展性更加好。2.单例模式是有状态的,而静态类是无状态的。这样的话,单例模式就更加符合面向对象的思想。3.单例对象...

2019-06-06 22:36:32 858

原创 用mat工具分析Android泄漏解决问题

内存泄漏是Android开发中比较难以解决的问题。这篇文章主要是来探讨如何使用mat工具进行内存泄漏的排查1.leakcanary上提示报错,发现有内存泄漏的提示2.打开Androidstudio 的Profile工具.菜单View-》ToolWindow-》Profiler (我本地的android studio版本是3.4),运行程序app3.在出现问题的页面来回切换4.点...

2019-05-22 16:43:28 167

原创 Android中自定义对话框(Dialog) (转)

注:本文转自 http://blog.163.com/shaocpa@126/blog/static/55357757201241102525166/ 1.修改系统默认的Dialog样式(风格、主题) 2.自定义Dialog布局文件 3.可以自己封装一个类,继承自Dialog或者直接使用Dialog类来实现,为了方便以后重复使用,建议自己封装一个Dialog类 第一...

2018-12-03 13:37:17 567

原创 React Native 问题the module react-transform-hmr/lib/index.js 找不到

react native环境搭建好后运行react-native run-android运行的时候提示the module react-transform-hmr/lib/index.js,并且出现红屏。执行adb devices,这时候看到模拟器设备列里adb连接正常的。相信这是 环境配置哪里搞错了,网上找了一下,一种解决方案如下。解决方法 react-native start --res...

2018-10-10 14:44:39 383

原创 Android中的注解

我们在很多三方库的源码中都看到注解,注解它不能改变我们的代码,但是注解提供了很多代码外的额外信息,这片文章主要来总结下我们平时在Android开发中用到的一些注解:java中的注解1.系统内置标准注解OverrideOverride表示标注的方法已经重载了父类的方法。同时也起到了一个断言的作用。比如我们写了一个跟父类方法名称一样的方法时而没有标注Override的时候,编译器通...

2018-09-15 10:46:19 311

原创 webview自定义缓存方案

今天在项目中遇到的问题,在使用webview的时候想做本地缓存 webview本身提供了缓存机制,可以参照文章 但是现在想把网页中的大图缓存到磁盘本地 实现第一次从网络上加载,加载成功后存到本地后,接下来都是通过webview去本地取 获取缓存的代码如下fun getURLcached(url: String): String { //val imgPath =&amp;amp;amp;amp;amp;amp;amp;quot;/mn...

2018-07-20 22:43:49 1636

原创 一张Bitmap图片可以压缩成多大内存

Android里面加载大图片的话很容易引起内存溢出,out of memory,因为如果你如果把一张很大的原图加载到ImageView的话,会提示 一张图片在内存中占有多大呢,Bitmap有个函数可以直接获取内存中占有的大小。我们看下Bitmap类里面 /** * Returns the minimum number of bytes that can be used to s...

2018-05-30 13:47:06 453

原创 银行类app如何保证安全性

银行类app对于安全行的要求比较高,这篇文章整理一些日常开发中的基础知识。sharedPreference很多app在使用sharedpreferece储存个人数据,然后这部分储存是不安全的。 1.创建模式要正确MODE_PRIVATE。 因为如果是使用MODE_WORLD_READABLE创建的sharedpreference文件其他app是可以读取到的。如果是使用MODE_WO...

2018-03-31 12:06:30 5722

原创 glide源码解析

Glide源码解析在项目中用到了Glide来加载网络图片,于是想写篇文章来分析下Glide的源码,但是Glide里面的源码非常多,下面主要是从面试的角度来把一些重要的点提一下。 在理解glide的源码前,首先看下它怎么用的,glide的使用很简单,就一句代码。 Glide.with(MainActivity.this).load(url).into(img1);withwith的源...

2018-03-12 15:58:41 338

原创 gradle配置笔记

这里我把项目中build.gradle里面的配置整理罗列一下。能力有限,希望多多谅解。常用打包指令(命令端执行)./gradlew assembleDebug 编译并打Debug包 ./gradlew assembleRelease 编译并打Release的包 ./gradlew clean 清除9GAG/app目录下的build文件夹 ./gradlew build 检查依赖...

2018-02-26 17:30:39 232

原创 观察者模式

概念介绍观察者模式实际在android中用到的地方是非常多的。 比如我们的eventbus,还有listview更新数据,以及最近非常火的rxjava,用到的都是观察者模式。 无论是从事java开发,还是android开发,熟悉设计模式中的观察者模式都是必要的。使用场景观察者模式的主要使用场景有以下: 1.一个抽象模型有两个方面,一个方面依赖另一个方面。 2.一个对象的改变将导致一个或多个其

2017-12-30 10:50:15 329

原创 AndFix实例讲解

Andfix是阿里推出的一个热更新的库工程。相比其他热更新框架,它的特点是使用简单,功能强大,有专门团队进行维护。这篇文章来讨论下如何导入使用Andfix框架,并使用Andfix来完成我们一个bug的修复。导入Andfix新建一个android studio 工程,引入Andfix很简单,在build.gradle下面添置语句。 compile ‘com.alipay.euler:a...

2017-10-05 15:47:28 527

原创 Andfix实例讲解

Andfix是阿里推出的一个热更新的库工程。相比其他热更新框架,它的特点是使用简单,功能强大,有专门团队进行维护。这篇文章来整理讨论下如何导入使用阿里的Andfix框架来完成我们一个bug的修复。导入Andfix新建一个android studio 工程,引入Andfix很简单,在build.gradle下面添置语句。 compile ‘com.alipay.euler:andfix:0.5.

2017-10-05 08:48:13 129

原创 Eclipse项目如何切换成AS项目

如何将eclipse项目转化为AndroidStudio项目,并且用gradle的方式去打包。

2017-08-17 20:17:35 3500

转载 doT.js详细介绍【转载】

在项目中用到了doT.JS,发现网上这篇文章比较好,转载一下。 转载出处:http://www.cnblogs.com/kuikui/p/3505768.html doT.js详细介绍 doT.js特点是快,小,无依赖其他插件。官网: http://olado.github.iodoT.js详细使用介绍使用方法: {{= }} for interpolation {{ }} for ev

2017-08-02 15:55:31 198

原创 自定义解析器【一】

像xml,html这些标记行语言,我们通常会去采用java自带的解析工具去解析,如果我们要自己写一个类似于pull解析器或者dom解析器,能实现吗?这当然是很麻烦的,但是我们这里就写一个简单的解析器。 比如我们要解析的文本是:<xxml><span><button id="btn1" width="40" height="40"/><label id="label1" width="30"

2017-08-01 13:42:55 1098

原创 Service的两种启动方式

在Android开发的过程中,Service是一个非常重要的组件。 它的生命周期里面有几个特别重要的方法。Service的生命周期onCreate 当服务创建的时候调用 onStartCommand startServcie的时候会调用这个方法 onBind 当有其他组件想通过bindService()方法绑定这个服务时系统就会调用此方法。在实现的方法里面,必须添加一个供客...

2017-07-16 19:12:07 1280

原创 从源码分析Android的Classloader加载过程

现在插件化技术十分热门,其核心原理之一是用到了ClassLoader类加载器。因此有必要来了解下Android中的ClassLoader加载原理。 动态加载dex/jar/apk文件的基础是类加载器ClassLoader,它的包路径是java.lang,由此可见其重要性,虚拟机就是通过类加载器加载其需要用的Class,这是Java程序运行的基础。Java当中的类加载器分类1.Boot...

2017-07-01 08:24:25 631

原创 避免常见的Android内存泄漏

Android中的内存泄漏是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。下面归纳下app开发中常见的内存泄漏。1.尽量避免使用static变量因为在Android中,static声明的变量的生命周期跟app是一样的,比如app切换到后台后 ,这时候内存占用率大的activity会优先被回收。而这时候这个acti...

2017-06-13 13:55:48 363

原创 Retrofit2 源码分析(清晰版)

这篇文章主要分析下retrofit2框架的底层原理。

2017-06-03 09:01:23 399

apache-ant-1.9.6.rar

apache-ant-1.9.6.rar

2017-08-19

fastjson 1.2.5 jar包

fastjson

2017-06-13

android浮动搜索框示例

一个例子,是演示android浮动搜索框怎么用的,demo

2015-09-30

jQueryAPI1.4

jQueryApi 1.4版本的,对初学者学习jQuery的使用具有一定的帮助

2013-01-02

asp 建站完整代码

asp建站完整代码,不懂ASp的可以下载过来看看

2012-02-27

空空如也

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

TA关注的人

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