- 博客(40)
- 收藏
- 关注
原创 MediaRecorder示例
MediaRecorder示例基本流程参考链接:https://developer.android.google.cn/guide/topics/media/camera#capture-video具体步骤:打开Camera,利用Camera.open()函数打开相机。设置预览,把Camera和SurfaceView连接,利用Camera.setPreviewDisplay()设置预览的SurfaceHolder。开始预览,调用Camera.startPreview()开始预览
2021-04-27 13:34:47
322
原创 Android property属性机制
Android property属性机制overview属性(property)系统对Android来说是一个重要的功能。他作为一个系统服务管理着系统的配置和状态,所有的这些系统配置和状态都是属性(property)。属性(property)是一对键/值(key/value)组合,键和值都是字符串类型。这些属性可能是有些资源的使用状态,进程的执行状态,系统的特有属性。特别属性属性名称以...
2019-10-10 10:41:07
1353
原创 状态模式初学
状态模式定义: 状态模式允许对象在内部状态改变时改变它的行为,实例化的对象看起来好像修改了它的类。当代码中包含大量与对象状态有关的条件语句时,或行为随状态改变而改变的场景,就可以用状态模式去解决。状态,顾名思义,就是状态。。,可以表示一个类中的状态,也不仅仅是状态,也包括行为的。比如飞机的三种状态:没有动力,没在飞行,正在飞行。基本结构状态模式的类图如下:从结构上看,主要就是将项...
2019-05-13 22:38:51
223
原创 单例模式初学
单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。该模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。感觉类似于全局变量,使用了单例模式,就不用频繁的创建与销毁这个类了,比如与数据库...
2019-03-26 21:55:17
389
原创 工厂模式初学
工厂模式定义: 定义一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类。工厂方法并不是让子类本身在运行时做决定,而是指在编写创建者类时,不需要知道实际创建的产口是哪一个,选择了使用哪个子类,自然就决定了实际创建的产品是什么。所以一般使用场景,也是在明确计划在不同条件下创建不同实例时使用。而且从模式上看,只要是需要生成复杂对象的地方,都可以考虑使用工厂模式,当...
2019-03-22 20:20:48
229
转载 设计模式基本原则
设计模式基本原则六大原则设计模式(面向对象)有六大原则:开闭原则(Open Closed Principle,OCP)里氏代换原则(Liskov Substitution Principle,LSP)依赖倒转原则(Dependency Inversion Principle,DIP)接口隔离原则(Interface Segregation Principle,ISP)合成/聚合复用...
2019-03-21 16:51:09
266
原创 观察者模式初学
观察者模式定义很简单,观察者模式是关于多个对象想知道一个对象中数据变化情况的一种成熟的模式。观察者模式中有一个称作“主题”的对象和若干个称作“观察者”的对象,“主题”和“观察者”间是一种一对多的依赖关系,当“主题”的状态发生变化时,所有“观察者”都得到通知。即一个对象被修改时,则会自动通知它的依赖对象。使用场景一个对象的数据更新时需要通知其他对象,但这个对象又不希望和被通知的那些对象形...
2019-03-19 20:14:50
178
原创 Android 8.0编译过程初步分析
Android 8.0编译过程分析概述要想知道编译的过程,其实看编译的脚本,以及编译时产生的log是比较快的方法。编译相关的核心文件位于build/core下,而生成的文件在out/soong下,里面有编译过程中产生的编译相关文件。在编译过程中,首先将所有的android.bp文件收集成out/soong/build.ninja.d,然后以此为基础生成out/soong/build.nin...
2019-03-13 22:39:14
1038
原创 Android 8.0编译系统简述
Android 8.0编译系统简述概述Android 7.0之前,android编译主要依赖makefile,随着android工程越来越大,makefile编译花费时间也越来越多,所以7.0开始逐步引入了kati soong(可选,用的话需要在执行编译时将USE_SOONG=true开启),soong会将Android.bp(用于替换Android.mk文件)文件转化为ninja文件,然后由...
2019-03-09 20:32:59
548
原创 I2S基础
概念I2S(Inter—IC Sound)总线,又称集成电路内置音频总线,飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,用于音频设备之间的数据传输,广泛应用于各种多媒体系统。特点支持全双工和半双工通信。 支持主/从模式。总线规范标准标准的I2S总线电缆是由3根串行导线组成的:1根是时分多路复用(简称TDM)数据线;1根是字选择线;1根是时钟线...
2018-09-07 03:15:05
3830
原创 Android Seekbar进度条末端显示不全的解决方法
调试环境基于Android 6.0。在调整我们的应用UI时,如果使用到了seekbar,那可能会出现下面这各情况,进度条末端的切图形状没有显示出来,比如我的切图末端 是圆弧形,显示的却是直角形。 这种情况下可以用如下的方式解决:<SeekBar android:="@+id/seek" android:layout_width="@dimen/seekbar...
2018-07-05 01:35:52
6562
4
原创 使用ADB自动切换应用
配合windows BAT简单测试脚本获取当前焦点的应用包名 adb shell dumpsys activity | findstr mFocused获取运行过的activity adb shell dumpsys activity | findstr ActivityRecord自动切换应用 adb kill-server adb start-server adb root...
2018-06-12 14:55:07
4588
原创 Linux 字符设备驱动实例笔记
在Linux下一个字符设备驱动与用户调用该设备的程序之间的关系如下图所示,Linux内核使用cdev结构体来描述字符设备,通过其成员dev_t来定义设备号(分为主、次设备号)以确定字符设备的唯一性
2017-03-03 17:53:28
1646
原创 LDD字符驱动学习
字符驱动程序scull ,即“simple character utility for loading localities, 区域装载的简单字符工具’”。是一个操作内存区域的字符设备驱动程序,这片内存区域就相当于一个字符设备。字符设备的执行流程获取设备号 -> 注册设备 -> 关联File operations结构 -> open(打开设备) -> write ->read -> release资
2016-08-13 16:31:19
557
原创 linux驱动入门之hello wrold
第一个驱动程序:Hello World在linux上,所有的设备都可以看成是文件。我们对设备的所有操作基本上都可以简化成open、close、read、write、io control这几个操作。源代码#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_in
2016-08-12 15:48:28
488
原创 C语言(*(volatile unsigned CHAR *)addr)理解
嵌入式中C语言操作寄存器看ARM程序时,会看到类似如下的代码:#define SREG (*(volatile unsigned CHAR *)0x5F)在嵌入式系统编程中,一般要求程序员能够利用C语言访问固定的内存地址。按C语言的语法来看,这个地址应该由指针类型来表示,所以在操作某个内存地址,比如0x5c时,其步骤如下:将地址强制转换为指针类型 ->(unsigned CHAR * )
2016-08-05 15:12:46
8834
4
转载 ContentProvider详细介绍(附实例源码)
1.ContentProvider是什么? ContentProvider——内容提供者。它是一个类,这个类主要是对Android系统中进行共享的数据进行包装,并提供了一组统一的访问接口供其他程序调用。这些被共享的数据,可以使系统自己的也可以使我们个人应用程序中的数据,ContentProvider使用表的形式来组织数据.2.为什么要有ContentPro
2016-08-02 17:04:03
1055
原创 Android初学之第一个Android程序:文件浏览器
文件浏览器笔记文件浏览器用来读取android系统中的所有文件和文件夹。具体说明如下:最上面显示当前的文件路径。如果是根目录,则显示“/”;第二行是返回上一级按钮。如果当前处于根目录下,则该行不显示;若当前是文件夹,则可点击,进入下一级目录,若是文件,点击的话会提示不支持读取。新加功能,监听外部存储设备USB和SD卡插拔广播。代码如下:public class UsbBroadCastRec
2016-07-27 17:59:17
692
原创 java 个人编码规则
Coding Rule一个文件应只包含一个类或者接口,如果存在私有类或者接口,应放在主类或接口后面不能有重复代码,重复代码应封装成函数,或者放到基类里面统一采用4个空格缩进,务必将代码编辑软件的tab设置为以4个空格替代类的开始是变量定义,函数声明放后面相关的函数应该放在一起,调用者在被调用者上面变量定义应靠近使用它的地方类名应该是名字或名称短语,不能是动词,比如Customer, W
2016-07-26 20:57:15
550
原创 类和对象的区别
类是对象的抽象,对象是类的具体实例。 类是抽象的,不占用内存,而对象是具体的,占有内存空间。 例如:类就是水果,对象就是苹果。类: 人类 —>某一类东西 成员: 身高,体重,性别…——->人类的一些属性 对象: 你,我… ——–> 某个人类 实例: 就是对象,说的是一个意思. 方法: 吃,喝,拉,撒,睡,玩 —–> 每个人类能做的事情 构造方法: 怀孕生子 —->产生新的一个人的方法
2016-07-18 10:01:59
1225
转载 程序员必读书单1.0
作者:Lucida微博:@peng_gong豆瓣:@figure9原文链接:http://lucida.me/blog/developer-reading-list/本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读。旨在成为最好最全面的程序员必读书单。前言Reading
2016-04-18 18:15:25
994
转载 模拟信号采样与AD转换
模拟信号采样与AD转换old / xiahouzuoxinTags: DSP转载请注明出处: http://xiahouzuoxin.github.io/notes/1 著名的Nyquist采样定理2 模数转换程控放大器低通滤波器采样及采样保持量化参考文献1 著名的Nyquist采样定理尽管大家都知道,但还是提一提。大牛奥本海
2016-04-07 14:34:05
1893
原创 FL2440之U-Boot移植记录(二) uboot的编译配置
make _config配置过程READEME 刚开始学习Uboot,看到那么多的文件,首要的,当然的当然是阅读READEME这个帮助文件了。在基本把READEME文件浏览了一遍后,差不多理清了。 从这里知道了如果要使用开发板,需要使用”make_config”命令进行配置。 看到这里,可以看到详细的添加新支持板型的步骤。 那么make _config是怎
2015-08-19 19:23:53
1002
原创 FL2440之U-Boot移植记录(一)
开发板:FL2440uboot版本:u-boot-2010.09 uboot所有版本下载地址为:ftp://ftp.denx.de/pub/u-boot/ U-boot,全称为Universal Boot Loader ,即通用Bootloader,是遵循GPL条款的开源代码项目。为是德国DENX小组的创建的工程。一、uboo
2015-08-05 20:49:26
809
原创 FL2440裸机开发之LED
由于是开发裸机下LED程序,所以首先查找开发板手册,手册上并没有提到,所以接着查找到开发板底板原理图,找到了相应的led连接图。 之后在开发板核心板芯片S3C2440手册上找到与之对应的引脚描述继续往下翻,找到了对应的寄存器映射址 这样一些基础的工作就
2015-07-24 18:41:44
839
原创 linux之socket编程总结
前言 在TCP/IP协议中,网络层的“ip地址”可以唯一标识网络中的主机,传输层的“协议和端口”可以唯一标识主机中的进程。这样利用三元组(ip地址,协议,端口)就可以唯一标识网络的进程,网络中的进程通信就可以利用这个标志与其它程序进行交互。在这之中大部分应用都是通过socket实现的。socket 通常称作“套接字”,用于描述ip地址和端口,是一个通信链的句柄。是使
2015-04-05 17:42:56
1449
转载 给初学者的一封信
近来一直担心毕业需要写论文的问题,基本都没碰过编程的东西了。要写论文才发现做研究真的很难,在此向奋斗在科研一线的xdjm们致敬了!言归正传,论文刚有了一点思路就像放松一下,最近刚入了一个android手机就想试试android开发,于是花了将近半天时间搭好开发环境,写了一个helloworld,就想找本书看看,下载了《android应用开发揭秘》,打包这本书的网友提到计算机基础的重要性,推荐了ht
2014-12-07 16:43:53
937
原创 虚拟机与CentOS6.5安装vmware tools及共享文件夹下/mnt/hgfs/下没有文件问题
最近在虚拟机上安装CentOS6.5,下载
2014-10-08 18:45:07
11486
1
原创 Linux系统之CentOS6.5最小安装后的配置
因为需要网上下载东西,所以网络的配置首要配置的。[CentOS6.5]# vi /etc/sysconfig/network-scripts/ifcfg-eth0修改内容如下:DEVICE="eth0" #网卡设备名称BOOTPROTO="static"
2014-10-08 12:12:09
1584
原创 stm32初学之GPIO寄存器
要控制GPIO端口,就得控制相关的寄存器。可分为4类,其功能简单概括如下:1 .配置寄存器:选定GPIO 的特定功能,最基本的如:选择作为输入还是输出端口。2. 数据寄存器:保存了 GPIO 的输入电平 或 将要输出的电平。3. 位控制寄存器:设置某引脚的数据 为 1 或 0,控制输出的电平。4. 锁定寄存器:设置某锁定引脚后,就不能修改其配置。配置器的具体参数,还
2014-04-14 22:47:51
4118
原创 双击.dsw无反应,图标异常,打开方式中找不到vc
最近重装VC,估计是注册表没有清理干净,所以遗留了很多问题 ,比如说双击.dsw文件无法打开,打开方式中也打不到VC,折腾了大半天,现在算是解决了,办法如下:1.点开始,运行,输入regedit进入注册表编辑器。2.删除所有的.dsw及dswfile项目(此处可在左侧窗口点击鼠标右键,使用查找功能,方便一些)。3.接下来点开始,输入cmd进入命令行模式,输入如下语句:ass
2014-03-20 20:16:37
2616
原创 解决VC中编译出现”SHSQ.dll This required file cannot be loaded. Please re-install Microsoft Visual C++“方法之一
最近学MFC,经别人介绍了解到了visual assistx这个好东东,于是果断安装,然后兴冲冲的点进了VC6.0。。。。好吧,va没反应,在网上查了一下,说是因为我用的是中文版的,如果是英文版就可以正常使用。无奈,为了尝试下va,只好卸了中文版VC,重新安装一个英文版的。。。安装过程就不多说了,事实证明英文版VC的确要好一些,能够使用va,但是在我编译了一个Hello程序时,出问题了。。。
2014-03-18 16:46:50
8022
原创 linux下makefile多目录编译动、静态库
在待编译的project目录下有以下文件:进入project目录,用Vim编辑主makefile文件BINARY_NAME = app.outCFLAGS = -WallCC = gcc MAKE = makeSUBDIRS := module1 module2LIBS := module1/libmodule1.a module2/libmodule2.so L
2014-03-14 00:51:48
1701
原创 C/C++打印当前代码所在文件、所在行和函数
打印当前源文件的名字、行数和函数名: __FILE__, __LINE__, __func__ (注意,不是__FUNC__,而且都是两个下划线!!!)例:#include int main(int argc, char **argv){ printf("File Fame: %s\n", __FILE__); //文件名 printf
2014-03-14 00:12:15
4058
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人