自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 android native开发-native实现对camera的操作

通过native实现camera的操作源码路径:frameworks/av/camera/ndk/参考的test源码路径:cts/tests/tests/graphics/jni/CameraTestHelpers.cpp1/*2 * Copyright 2018 The Android Open Source Project3 *4 * Licensed under the Apac...

2018-10-26 10:28:21 6079 1

原创 嵌入式驱动编写-USB设备驱动程序

现象:把USB设备接到PC1. 右下角弹出"发现android phone" 1. USB是主从结构的   所有的USB传输,都是从USB主机这方发起;USB设备没有"主动"通知USB主机的能力。   例子:USB鼠标滑动一下立刻产生数据,但是它没有能力通知PC机来读数据,只能被动地等得PC机来读。2. 跳出一个对话框,提示你安装驱动程序2. USB的传输类型:a. ...

2018-07-27 14:38:14 1481 3

原创 opencv+python+windows开发环境搭建

一.环境 python2.7 / win7 64bit 二.windows下安装easy_install,pip和whl文件安装easy_install 1.下载ez_setup.pyfrom urllib import urlopendata = urlopen(‘http://peak.telecommunity.com/dist/ez_s

2018-02-06 19:29:22 353

转载 WebRTC视频JitterBuff

前言如果网络是理想的,即无丢包、无抖动、低延时,那么接收到一帧完整数据就直接播放,效果一定会非常好。但是实际的网络往往很复杂,尤其是无线网络。如果还是这样直接播放,网络稍微变差,视频就会卡顿,出现马赛克等异常情况。所以,在接收端对接收的数据做一个缓冲是很有必要的。 缓冲一定是以延时作为代价的,延时越大,对抖动的过滤效果越好。一个优秀的视频jitterbuffer,不仅要能够对丢包、乱序、延时到达等异

2017-11-30 14:31:50 550

原创 AlertDialog显示错误 Unable to add window token null is not for an application

在listView的onItemClick函数中显示一个AlertDialog,出现如下错误 08-07 21:26:43.506: ERROR/AndroidRuntime(9390): android.view.WindowManager$BadTokenException: Unable to add window – token null is not for an application

2017-05-12 11:13:30 497

转载 TCP和UDP的区别(转)

TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。 TCP/IP协议集包括应用层,传

2017-05-03 15:05:31 299

原创 android应用开发调试手段

1.Java Eclipse进行断点调试如何调试Java程序?大家最开始学习Java,都会觉得IDE调试好高端有木有,其实很简单了。下文会尽量简单直观的教会你在Eclipse中调试,其他的IDE调试步骤也是类似的。1.在你觉得有错的地方设置断点。在代码行数前,点击右键,注意是右键,然后选择Toggle Breakpoint。你可能会问,我如何知道在哪儿放置断点?如果对这个问题完全没有感觉,你完全可以

2017-04-24 11:10:47 531

原创 Android的设计与实现--Activity Manager

Activity Manager的功能:启动或者杀死应用程序。启动并且调度Ativity生命周期。启动并且调度应用程序Service生命周期。注册Broadcast Receiver,接收发送broadcast。启动并且发布Content Provider。调度task。检查,授予,收回访问URI的权限。 处理应用程序crash。调整进程调度优先级几策略(调整OOM adj)。查

2017-04-24 11:09:03 345

原创 android-java对象序列化Object serialization

将对象编码成字节流,并从字节流编码中重新构建对象,将一个对象编码成一个字节流,称作该对象序列化(serializing),相反处理过程称作反序列化(deserializing)。一旦对象被序列化后,它的编码就可以从一台正在运行的虚拟机被传递到另一台虚拟机上,或者被存储到磁盘上,供以后反序列化使用; 实现serializable接口付出的最大的代价:一旦一个类被发布,就大大降低“改变这个类的实现”的

2017-04-19 14:36:49 503

原创 HashMap与ConcurrentHashMap的区别

concurrent包,从此Map也有安全的了。 HashMap不是线程安全的,因此多线程操作时需要格外小心。

2017-04-18 16:14:21 295

原创 android设计模式-Builder模式

builder模式可用来自由扩展项目。 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 builder模式的使用场景 1 相同的方法 ,不同的执行顺序,产生不同的事件结果时。 2 多个部件或零件,都可以装配道一个对象中,但是产生的运行结果又不同时。 3 产品类非常复杂,或者产品类中的调用顺序不同产生不同的作用,这个时候用建造者模式 4 当初始化一个对象特别复杂

2017-04-18 15:38:36 270

转载 【Android开发经验】APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了

只要是需要进行联网获取数据的APP,那么不管是版本更新,还是图片缓存,都会在本地产生缓存文件。那么,这些缓存文件到底放在什地方合适呢?系统有没有给我们提供建议的缓存位置呢?不同的缓存位置有什么不同呢?今天这篇文章就是主要来说明这个问题的。 首先,我们要知道,在Android手机里面,缓存的位置分为两类,一类是Internal Storage,即内部存储,另外一类是External Stor

2017-04-18 11:34:31 865

原创 android-封装一个加载处理的handler类

public class LoadHandler extends Handler { private LoadListener listener; public LoadHandler(Looper looper) { super(looper); } public LoadHandler(LoadListener listener) {

2017-04-18 10:19:41 1708

原创 android开发-后台邮件统计异常的需求

04-17 15:11:00.172 W/System.err(23374): at javax.mail.Transport.send0(Transport.java:188)04-17 15:11:00.172 W/System.err(23374): at javax.mail.Transport.send(Transport.java:118)04-17 15:11:00.1

2017-04-17 15:38:15 719

原创 AndroidStudio:图片有jpg改为png之后报错

今天利用AdroidStudio开发项目发现了这个程序报了这个异常:ProcessException: Android\Sdk\build-tools\21.1.2\aapt.exe finished with non-zero exit value 42,原因是我在mipmap文件中添加了一张图片后出错的。 把jpg格式的文件直接重命名改成png格式的文件就报错了,然后我用ps编辑图片并且另存为

2017-04-13 10:29:29 1390

原创 android系统binder通信架构分析

Binder系统核心 通信需要的三要素,源,目的,数据。 探索Binder通信的一条核心就是:Client如何找Server,将请求发送给Server,Server再将结果返回给Client。 IPC:Inter-Process Communication, 进程间通信1、源 :client 2、目的:server server向servicemanager

2017-04-11 16:16:28 504

转载 Android视图SurfaceView的实现原理分析

在Android系统中,有一种特殊的视图,称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面。由于拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独立的线程中进行行绘制。又由于不占用主线程资源,SurfaceView一方面可以实现复杂而高效的UI,另一方面又不会导致用户输入得不到及时响应。在本文中,我们就详细分析SurfaceView的实现原理。

2017-04-11 15:31:54 560

原创 Android中使用Handler造成内存泄露的分析总结

内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。 什么是Java中的内存泄露在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对象是可达的,即在有向图中,存在通路可以与其相连;其次,这些对象是无用的,即程序以后不会

2017-04-10 19:01:28 284

原创 java单例和静态类区别

Java中单例与静态的区别? 静态类比单例具有更好的性能,因为静态方法在编译期绑定 再次,它们的区别是override的能力,因Java中的静态方法是不可以覆盖的,这就导致其木有太多的灵活性,另一面,你可通过继承的方式覆盖单例类中定义的方法 静态类很难模拟,因此难于单例测试,单例更容易模拟,因为也比静态类易于编写单元测试,不论神马单例期望神马,你都可以传递模拟对象,例如构造方法或方法参数 如

2017-04-10 14:15:39 2229

原创 android硬件访问服务分析-vibrator

源码: Vibrator.java (frameworks\base\core\java\android\os) VibratorService.java (frameworks\base\se rvices\core\java\com\android\server) SystemServer.java (frameworks\base\services\java\com\android\

2017-04-01 10:52:21 631

转载 音频编解码speex库的使用方法

Speex是近年来开发出的一套功能强大的语音引擎,能够实现高质量和低比特率的编码。它不仅提供了基于码激励线性预测(CELP)算法的编/解码模块, 而且在其最新发布的版本中还提供了声音预处理和声学回声消除模块,为保障IP网络中的语音通信质量提供了技术手段。此外,Speex还具有压缩后的比特率 低(2~44 kbps)的特点,并支持多种比特率。这些特点使得Speex特别适合VoIP的系统。 虽然是开源

2017-02-13 19:43:55 2284

原创 android-opengl入门

android 支持使用Open Graphics Library高性能的2D和3D制图算法,特别地,OpenGL ES API。OpenGL 是一个跨平台制图算法API,指定一个标准的软件接口为3D制图算法在处理的计算机硬件。OpenGL ES是一个OpenGL功能的加工为嵌入式的硬件设备。 Android 支持OpenGl在frameworkAPI和Native Development Kit

2017-02-04 16:10:13 591

原创 输入子系统linux编程知识

思考:1、键盘的即插即用,怎么监测键盘的接入和拔出?可以通过hotplug机制和inotify机制实现:1、hotplug机制:内核发现键盘接入和拔出后启动hotplug进程发送消息告诉输入系统。hotplug进程复杂,android系统不使用hotplug。2、inotify:输入系统使用inotify监测目录/dev/input变化。作用: 监控一个目录下文件的增加、删除事件。inotify测试

2017-02-04 10:29:21 232

原创 android-------textview文字的设置

TextView设置部分文字大小、加粗、倾斜、颜色、背景、分行显示。textView如果想要强制换行的话,必须先把TextView显示方式修改为多行(android:singleLine="false"),然后才能换行。方法一般用两种: 1、在字符串里加入“\n”,如"abc\nrc"; 2、把TextView设置为固定宽度,然后让系统自动换行。如android:layou

2016-11-29 09:59:41 2756

原创 android-adb 命令总结

adb 命令总结:1. 安装apk;   adb install 拖入apk2. 启动、关闭adb服务;   adb start-server  adb kill-server3. 查看设备:   adb devices4. 首先需要 root 手机。    然后,“Win + R”,打开cmd窗口。下面以copy d:\1.txt到

2016-11-22 19:28:09 301

原创 android 延时操作的方式

1 线程 new Thread(new Runnable(){ public void run(){ Thread.sleep(XXXX); handler.sendMessage();----告诉主线程执行任务 } }).start 2定时器 TimerTask task = new

2016-11-21 19:16:03 399

原创 android studio 2.2.2配置NDK开发环境

首先需要下载Android Studio 2.2.2到电脑上安装。安装完成之后,开始配置。第一步,创建一个项目,类似eclipse应用名 公司域名,包名。勾选上(不做NDK可不勾选)  项目的路径。

2016-11-16 19:12:09 1266 3

原创 android开发--WIFI应用开发

手机系统打开WIFI可以搜索到附近的WIFI信息,第三方应用在代码中同样也可以实现,来查询WIFI信息。并且根据WIFI信号的强弱进行排序。 1 适配器package com.quvii.bell.adapter;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;

2016-11-09 17:34:11 510

原创 嵌入式驱动编写-LCD驱动程序

如何来写LCD的驱动程序,首先 看芯片开发手册和原理图根据原理图,找到s3c2440的GPIO控制管脚,gpb   gpc  gpd  gpg管脚控制需要设置寄存器以及设置LCD控制寄存器查看内核中的fbmem.c (drivers\video) 文件re

2016-11-08 22:14:23 5187

原创 嵌入式驱动编写-按键驱动程序

今天,写出开发板上的最简单的按键驱动程序,首先需要阅读开发板的原理图和芯片手册.GPG3  GPG11  GPF0  GPF2四个引脚控制按键.由原理图可知,需要将GPG3  GPG11  GPF0  GPF2设为输入引脚.1 编写驱动程序#include #inclu

2016-11-06 12:10:42 5347

原创 嵌入式驱动编写-点亮LED驱动程序

在开发板上,有三个LED灯.如何通过应用程序点亮这三个灯如何编写驱动程序操作硬件的时候,我们需要准备开发板的原理图和开发手册,,根据这两个文档来进行配置  在source insight 编写代码1 第一个led驱动程序#include #include #include #inclu

2016-11-05 22:51:50 12901

原创 嵌入式驱动编写-第一个驱动程序

打开开发板的原理图找到操作LED的寄存器1 确定运行环境正常1 PC,linux虚拟机,JZ2440开发板之前可以互相ping通查看设备类型1  编写驱动程序#include #include #include #include #include #include

2016-11-05 19:28:39 12127

原创 android系统源码分析,硬件访问服务

分析使用的是android-5.0.2版本的源码硬件访问服务的过程 以振动器为例子分析过程服务会被添加到ServiceManager进程中,供应用程序使用/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (th

2016-10-26 20:24:35 1472

原创 android应用开发,类似美团商品详情下拉,顶部图片放大的效果

需要用到自定义控件ListViewpackage com.matrixxun.pulltozoomlistsimple;import android.app.Activity;import android.content.Context;import android.os.SystemClock;import android.util.AttributeSet;import

2016-10-25 20:10:34 1200

原创 android开发,如何使用git托管代码,如何在android studio上使用git管理代码

git是很好一个工具使用,可以执行liunx命令,有git环境后windows系统就可以进行shell命令操作,就可以添加其他liunx辅助软件进行执行,git也代码库管理工具,无论是上传,下载代码都可以使用git的环境,起到很好应用效果。如何使用Git一 、下载安装首先下载一个Git的安装包,我的电脑是64位,因此,根据自己的电脑配置下载相应的安装包。Git_V2.5.1_6

2016-10-25 15:57:15 2122

原创 实现windows和linux服务器之间文件共享,工具就是Samba软件中的一种,samba-client。

在嵌入式学习的过程中,避免不了操作linux。在windows下安装虚拟机运行linux操作系统,在windows下的开发工具编写好的软件放到linxu上进行编译,然后又需要从linux'上取出来编译后的文件。也有一些好的工具可以帮助实现,但是过程相对比较麻烦,因此选择用文件共享的方式来实现。一 、开发环境安装了Windows操作系统计算机,并且安装了虚拟机linux(Ubuntu12.0

2016-10-22 11:58:37 3334

原创 linux编程常用的命名

1.压缩命令:  命令格式:tar  -zcvf   压缩文件名.tar.gz   被压缩文件名      可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。 2.解压缩命令:  命令格式:tar  -zxvf   压缩文件名.tar.gz  解压缩后的文件只能放在当前的目录。

2016-10-21 14:15:26 379

原创 java高级编程,JNI的使用。c程序调用java代码

JNI不仅可以让我们在java中调用C语言程序,而且 在c中同样可以调用java'程序C/C++代码调用java代码的而情况:1  实现化平台使用2  访问java语言编写的代码或者代码库3 希望利用标准的 java类库如何来实现呢?一 、创建一个C语言程序‘#include  #include  jint create_vm(

2016-10-19 19:05:51 279

原创 java高级编程,JNI的使用。java代码调用c程序

Java Native Interface (JNI)标准是Java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作。此外,在执行Java类的过程中,如果Java类需要与C组件沟通时,VM就会去载

2016-10-19 17:28:09 600

原创 android 实现home键功能的几种方式,退到后台但不退出程序

1 通过调用moveTaskToBack() true/false的方式 2 通过intent的方式/*** 退到桌面 并且结束当前应用* @param context*/public static void backHomeFinishSelf(Context context) {Intent intent = new Intent(Intent.ACTION_MAI

2016-10-17 14:42:54 6193

FFmpegAndroid-master

FFmpegAndroid。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2018-03-13

空空如也

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

TA关注的人

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