- 博客(129)
- 资源 (8)
- 收藏
- 关注
原创 binder
service_manager.c 中的main函数首先会去调用binder.c 的函数binder_open,然后又会调用binder.c 的函数binder_loop,我们看下binder_open和binder_loop函数分别做了什么.binder_open首先打开了binder驱动文件("/dev/binder")如下:bs->fd = open(driver, O_RDWR | O_CLOEXEC);然后通过mmap函数把物理内存和binder文件实现一层映射关系,如下:bs-&g
2021-02-26 17:25:46 126 1
原创 https理解
https://juejin.cn/post/6925296374628122632郭霖网站(后面用A表示)建好站之后,需要将网站的公钥提供(邮件提供??)给CA机构(后面用C表示),C将A给的公钥,以及A的域名,及有效时长等数据通过C的私钥加密大包制作成一个CA证书,返回给A。A将C返回的CA加密证书配置到网站服务器上即可3.每当有浏览器请求我们的网站A时,首先会将这个CA加密证书返回给浏览器,此时浏览器会用 CA 机构的公钥(PC预置的)来对这段数据解密。如果能解密成功,...
2021-02-24 11:51:29 259
原创 判断TXT文件的编码方式
判断TXT文件的编码方式,以避免打开时出现乱码(UniversalDetector) juniversalchardet-1.0.3.jar已上传,正在审核public static String getCharset(File file) { String DEFAULT_ENCODING = "GBK"; if (!file.exists()) { ...
2019-11-13 14:36:05 1434 1
转载 wait()、notify()和notityALL()
wait()、notify()和notityALL()wait方法是Object中的方法,这个方法的功能特性:1).执行wait方法的前提是当前线程已经获取到对象的锁,也就是wait方法必须在synchronized修饰的代码块或者方法中使用。 2).执行wait之后,当前线程会失去锁的所有权,并暂停执行,一直等待,直到其他线程调用notify()、notifyAll()把其唤醒或者所在线...
2019-02-13 14:14:40 488
原创 mk 解释
LOCAL_PACKAGE_NAME:当前编译出来的安装包的名字例如:LOCAL_PACKAGE_NAME := AmPmListening然后以如下结尾:include $(BUILD_PACKAGE)LOCAL_CERTIFICATE := platform //使用的哪种key 来给apk签名LOCAL_MODULE: 当前编译出来的库的名字include $(BU...
2018-12-03 18:52:45 971 1
原创 extern
C/C++中extern关键字详解1. 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义,而此extern处只是声明,不是定义也就是说extern有两个作用,第一,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的...
2018-11-21 14:26:29 2031
原创 在ubuntu上编译ffmpeg
有些东西还是需要记录一下的,因为错误不能重复:1.在ubuntu下先要安装dos2unix make unzip等工具(apt-get install dos2unix),安装的过程中发现错误如下:Unable to locate package需要我们先执行sudo apt-get update,然后再来安装这些工具2.我们现在ubuntu下创建文件build_a
2018-01-10 17:06:52 422
原创 视频直播
一:先搭建window下的Nginx流媒体服务器参考:http://blog.csdn.net/ruwochunfeng/article/details/72911796 http://blog.csdn.net/lishimin1012/article/details/52130683二:推流:可以从pc端也可以从手机端PC端推流,PC端或者手机端引流
2017-10-31 15:59:01 351
原创 巩固C/C++
一:& 运算符: 当它后面跟一个变量名的时候,把这个变量名的地址取出来#include using namespace std;int main(){ int a=5; double b=10.4; cout<<"Address of a:"<<&a<<endl; cout<<"Address of b:"<<&b<<endl;}*运
2017-10-26 15:18:25 306
原创 ffmpeg的学习视频
一:富媒体时代FFmpeg视频处理技术手机录屏放到PC上看一般角度都不对:ffmpeg1.获取视频的旋转角度2.根据旋转角度来调整视频3.根据大小,比特率来压缩视频4.给视频加水印https://www.bilibili.com/video/av6474374/?from=search&seid=1500047667389730188二.Android ndk图
2017-10-23 15:46:13 507
原创 ffmpeg开发时ndk错误怎么定位
NDK出错信息如下:10-19 14:46:53.036 111-355/? I/ALSAModule: Buffer size: 6144(frames) period Size: 2048(frames) periods: 3 (buffersize=periodSize*periods)10-19 14:46:53.036 111-355/? I/ALSAModule: Late
2017-10-20 13:36:22 462
原创 ffmpeg ndk
基于eclipse:1.创建一个android project kjcodec2.右键点击kjcodec然后new 一个Folder,名字叫jni3.把如下FFmpeg已经编译好的动态库以及include中的头文件拷贝进来4.创建一个class,KUtils.java, 包含本地方法public native int kCodec(String inPath,St
2017-10-13 14:20:40 575
原创 Android 平板通过USB口连接小票打印机
1.首先注册一个广播:用户三种操作会导致系统发广播,插或者拔USB设备,还有就是在USB授权框点击是或者否 private void initReceiver() {//授权对话框点击操作之后会发出系统广播 receiver = new BroadcastReceiver() { public void onReceive(Context cont
2017-07-25 17:32:06 8594 4
原创 js 开篇
5月中旬开始学习接触RN,并要求自己在半年之内能独立开发RN.后面发现RN需要React基础,所以开始学习一下React,后又发现React只是JS众多框架中的一种,所以先打算学习一下JS基础,所以就这么一层嵌套这一层的,到这里来了。上面是题外话,今天要记录的是JS概念Promise,直接上例子如下:var getJSON = function(url) { var promise
2017-07-17 15:18:21 215
转载 js
'use strict';Com.ready(function(){ var TopBar = require('topBar');//webpack是近期最火的一款模块加载器兼打包工具,基于它可以直接使用 require(XXX) 的形式来引入各模块,括号里面的参数是在 //webpack.config.js中
2017-05-17 16:52:49 296
原创 性能优化
http://www.cnblogs.com/dongweiq/p/5144186.html 通过android studio3.2的CPU Profiler来分析卡顿以及冷启动缓慢的原因https://www.jianshu.com/p/a3d91986b4c7 怎么利用MAT来分析hprof文件并定位到内存泄漏https://blog.csdn.net/guolin_b...
2016-11-29 17:50:13 354
原创 android热修复
APP上线之后,出现了严重bug怎么办?热修复是一个很好的解决方式。 怎么去做热修复参考的系列课程1讲的很清楚。需要注意到的是,参考的系列课程1的工程中本来就有两个dex文件,出现问题之后加上一个修复的dex文件总共有三个dex文件,所以他能正常修复。 一般情况下,我们的工程当中就只有一个dex文件,如果完全按照系列课程1去做的话就会有问题,就是CLASS_IS_PREVERI
2016-08-27 20:26:50 659
原创 Rxjava+Retrofit2+Okhttp3
@Path:所有在网址中的参数(URL的问号前面),如: http://102.10.10.132/api/Accounts/{accountId}@Query:GET访问时,URL问号后面的参数,如: http://102.10.10.132/api/Comments?access_token={access_token}@QueryMap:相当于
2016-08-01 17:46:38 2231
转载 MAT分析内存泄漏
链接:http://blog.csdn.net/guolin_blog/article/details/42238633MAT常用的功能:Histogram可以列出内存中每个对象的名字、数量以及大小。Dominator Tree会将所有内存中的对象按大小进行排序,并且我们可以分析对象之间的引用结构。摘取:这是Dominator Tree中比较常用的一种分
2016-05-13 16:21:37 439
原创 leak-canary
http://www.liaohuqiu.net/cn/posts/leak-canary/http://hukai.me/android-performance-memory/http://blog.csdn.net/gemmem/article/details/13017999
2016-04-29 14:22:30 427
转载 Rxjava
DEMO:https://github.com/laucherish/PureZhihuDhttps://github.com/MrFuFuFu/RxFacehttp://gank.io/post/56e80c2c677659311bed9841http://gank.io/post/560e15be2dca930e00da1083https://rea
2016-04-26 15:05:25 285
转载 okhttp是android平台最好的网络库
作者:碗盆链接:https://www.zhihu.com/question/35189851/answer/82992547来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。okhttp是android平台最好的网络库,欢迎打脸。volley是一个简单的异步http库,仅此而已。缺点是不支持同步,这点会限制开发模式;不能post大数据,所以
2016-04-26 10:01:37 440
原创 你的 Bitmap 究竟占多大内存?
http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=498实际情况:一张 522x686 的 PNG 图片,我把它放到 drawable-xxhdpi 目录下,在三星s6上加载,占用内存2547360B,就可以用这个方法获取到。自己计算的情况:一张522*686的PNG 图片,我把它放到 drawable-xxhdpi 目录
2016-04-16 18:40:10 1488
原创 蓝牙配对和连接
最重要三个类:BluetoothAdapter bluetoothAdapterBluetoothSocket btSocket;BluetoothDevice devicebluetoothAdapter = BluetoothAdapter.getDefaultAdapter();bluetoothAdapter.startDiscovery();//开始搜
2016-03-17 14:55:24 2382
原创 Android网络请求好文
Android网络请求心路历程(上)http://mp.weixin.qq.com/s?__biz=MzA3MDMyMjkzNg==&mid=402574975&idx=1&sn=2e7a23363957cafcf4e442b19d3a3e90&scene=0#wechat_redirectAndroid网络请求心路历程(下)http://mp.weixin.qq.com/s?__
2016-02-15 15:05:04 409
原创 remount
1. 需要获取手机的root权限,方法很多了,我用的是360一键Root,有时也用百度一键Root 2. 从其他手机拷贝sqlite3文件到PC,我是从模拟器copy出来的,为方便大家,附件就有,可以直接下载哈 3. 进入手机建立个临时目录开始---cmd---adb shell---mkdir /mnt/sdcard/tmp,然后退出到cmd下adb push
2015-12-31 10:10:30 1444
原创 synchronized
无论synchronized关键字加在方法上还是对象上,他锁住的都是对象。所以一个类中如果有2个或者多个synchronized修饰的方法时,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问也将被阻塞。所以银行账户的例子中,存钱或者取钱的方法必须要加synchronized,也
2015-12-29 17:37:56 499
原创 8583 55
public class Field55Test { private static final String LINE_SP = System.getProperty("line.separator"); //测试报文55域 public static final byte[] BYTES = new byte[] { (byte) 0x9F, 0x10, 0x08,
2015-11-20 17:53:33 831
原创 简单的view 自定义
半年之前自己学习时写的一个小例子,贴上来作为笔记package com.test.defview2;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Bitmap;import android.graphics.BitmapFactory;impo
2015-10-02 16:52:01 488
原创 串口通信
接着上一篇,上一篇写的是产品模块通过usb口连接Android平板,Android平板通过usb host协议和产品模块通信。实际上产品模块还可以通过串口和模块进行通信,因为我们的平板和模块都连有串口线。当然模块还可以直接和pc通过串口或者usb口通信,如果pc是笔记本的话,可以通过usb转串口的线来和模块通信,usb口的话直接连接就行了。串口通信其实比较简单,android.serial
2015-09-27 16:48:50 857
原创 USB host 通信
公司主打支付产品,产品是和Android平板连接起来的。Android平板怎么和产品通信呢?串口或者USB口。串口通信比较简单,下篇再讲,此篇主要讲的是usb host通信。一:寻找UsbDevice并授权两种方法寻找usb device,1是通过Intent Filter来寻找,2是通过枚举所有的设备来寻找1.在manifest文件中添加如下代码: ...
2015-09-24 22:10:42 2364 2
原创 怎么给一个函数的运行设置超时
首先,为了使系统资源能更好分配,建立一个线程池: BlockingQueue workQueue = new LinkedBlockingQueue(3); //Integer.MAX_VALUE ExecutorService mExecutor = new ThreadPoolExecutor(4, 6, 4, TimeUnit.SECONDS, workQueue, new Th
2015-09-18 11:12:25 1354
原创 aidl理解
aidl笔记,aidl文件代码如下:package com.zhy.calc.aidl;interface ICalcAIDL{ int add(int x , int y); int min(int x , int y );}生成的java文件代码如下(编辑了一下,方便参考):package com.example.zhy_binder;public interfa
2015-09-17 16:05:35 758
原创 socket笔记
这次是在云端用java写一个serversocket来监听客户端socket的连接请求。总体的结构就是启动一个监听线程,如果监听到了客户端的连接请求,就另外启动一个子线程去负责和此客户端的交互,直至客户端发完数据,主动关闭socket,此时服务端的子线程socket也就关闭了。代码如下:package com.example.socket;import java.io.IOExcept
2015-09-13 09:04:37 460
原创 拆字
为什么要拆字?怎么拆?拆字,字面意思,拆字节,把字节拆开,一个字节总共才8位,拆开的话就拆成2个四位,那么四个比特位的表示范围是多少呢,0-15。 拆字一般是+030,目的是把数字转成此数据对应的字符(可以对照ASCII表来看),把不可见字符转为可见字符。那么0-15再加上0x30的话,其范围是48-63,所以一个字节要拆成两位,两个字接要拆成四位。 例如,我有字节数据0
2015-09-10 15:32:50 992
原创 常见内存泄漏原因
常见的内存泄露问题1.Cursor,stream,socket用完没close2.广播调用了registerReceiver注册后未调用unregisterReceiver()来注销3.构造Adapter时,没有使用缓存的convertView4.Bitmap对象不再使用时没有调用recycle()释放内存(3.0之前,之后不用了)5.context泄漏:应该用getAppli
2015-09-01 16:56:23 1635
转载 内存泄漏
如果您在Activity中定义了一个内部Handler类,如下代码: public class MainActivity extends Activity { private Handler mHandler = newHandler() { @Override public void handleMessage(Message msg) {
2015-09-01 16:14:36 396
juniversalchardet-1.0.3.jar
2019-11-13
修改FFmpeg源码,成功转码mp4为mkv,以及拼接mp3
2017-10-20
FFmpeg成功解码mp4为yuv
2017-10-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人