自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 Android 开发 相关 有用文档收集

android studio中App项目,添加系统签名

2021-01-29 10:52:13 137 1

原创 Android OpenGL 学习记录

一、Android中的OpenGL ES(v2.0)1、java层实现2、java + C++实现3、C++层实现ES 其实应该算是封装了,不然怎么有一个libEGL.so ,再有libGLESv2.so 这些库呢?二、EGL和OpenGL的关系注:上面的关系不仅限于Android平台,IOS、Windows等其他平台也是一样的!如上图 EGL 就是 surface 和 openGL的桥梁。三、创建C++项目并导入OpenGL库1、可以使用NDK2、在CM

2021-01-10 23:25:21 467

原创 音视频相关文章总结

Android音视频开发Android Camera架构Android MediaExtractor + MediaCodec构建简单播放器Android平台上使用MediaCodec, Opengl对视频进行处理MediaCodec的使用介绍MediaCodec基本原理及使用初识MediaCodec音频的两种录制方式-AudioRecord,MediaRecorder的使用及播放使用AudioRecorder录音...

2020-12-29 15:43:25 217

原创 制作简单播放器

最简单的播放器该播放器只实现视屏播放,将FFmpeg与SDL结合到一起通过FFmpeg解码视屏数据,通过SDLL进行渲染#include <stdio.h>#include <SDL.h>#include <libavcodec/avcodec.h>#include <libavformat/avformat.h>#include <libswscale/swscale.h>// compatibility with n

2020-12-27 23:33:57 725

原创 SDL 介绍

一、SDL的使用加头文件 #include<SDL.h>初始化SDL退出SDLSDL 主要用在渲染SDL 渲染窗口初始化:SDL_Init(),SDL_Quit()创建窗口:SDL_CreatWindow() 销毁窗口, SDL_DestoryWindow()创建一个渲染器:SDL_CreateRender(),作用是把图像帧会到窗口里面去。...

2020-12-27 00:49:30 4138 1

原创 android audio模块(二)

案例:android 源码,c++ 的测试程序frameworks\base\media\tests\audiotests\shared_mem_test.cpp 共享内存测试JAVA层AudioTrack 测试程序:frameworks\base\media\tests\MediaFrameworkTest\src\com\android\mediaframeworktest\functional\audio\MediaAudioTrackTest.java一、AudioTra..

2020-12-22 18:03:35 1162

原创 android audio模块(一)

参考这两个文章:Android 音频系统:从 AudioTrack 到 AudioFlingerAndroid 音频数据传输流程图 - Playback过程

2020-12-17 16:15:44 779

原创 android 使用SurfaceFlinger 服务的流程分析,基于4.4(三)----图像的输出过程

frameworks\native\services\surfaceflinger\SurfaceFlinger.h ....... struct DisplayDeviceState { DisplayDeviceState(); DisplayDeviceState(DisplayDevice::DisplayType type); bool isValid() const { return type >= 0; } ...

2020-12-16 18:10:39 707

原创 android 使用SurfaceFlinger 服务的流程分析,基于4.4(二)---- vsync 机制

一、VSYNC 概述调用 unlockAndPost ,将UI buffer 入队后,最终通过 layer层调用surfaceflinger 的signalLayerUpdate 函数 ,通知surfaceflinger 处理。在分析这个surfaceflinger 处理前要先了解vsync 机制。surfaceflinger 将不同layer 的 ui数据元素合成,需要精密的时间控制,不然屏幕就会很卡。在相同的信号指令下进行处理数据,屏幕才会呈现出正常的图像。这个信号就是vsync 。

2020-12-15 18:10:51 326

原创 android 使用SurfaceFlinger 服务的流程分析,基于4.4(一)------SurfaceFlinger 使用步骤

一、使用SurfaceFlinger 的框架一般来说,使用SurfaceFlinger服务的流程分为以下几步:1、创建应用进程的Client ,这个Client 是一个SurfaceComposerClient 对象,主要用来创建一个surface:sp<SurfaceComposerClient> client = new SurfaceComposerClient()其UML 流程图如下:2、 用第一步创建的Client 获得一个surfaceControl...

2020-12-14 12:03:31 886

原创 Android应用程序窗口(Activity)的测量(Measure)、布局(Layout)和绘制(Draw)函数流程

Android应用程序窗口的UI渲染过程可以分为测量、布局和绘制三个阶段1、测量(Measure) ... ↓ViewRootImpl.doTraversal() ↓ViewRootImpl.performTraversals() ↓ViewRootImpl.measureHierarchy() ↓ViewRootImpl.performMeasure() ↓V

2020-12-10 17:31:21 287

原创 正确使用Runtime.getRuntime().exec()方法

1.错误的使用方式Runtime.getRuntime().exec("xxx");2.正确的使用方式//需要指定参数一:命令位置;参数二:-c表示先执行第一个参数;参数三:你的命令。Runtime.getRuntime().exec(new String[]{"/bin/sh","-c","xxx"});例如 :try { Runtime.getRuntime().exec(new String[]{"/system/bin/sh","-c","reboot"});}

2020-12-10 14:41:51 4062 1

原创 Android应用程序窗口(Activity)的绘图表面(Surface)的创建流程

每一个在C++层实现的应用程序窗口都需要有一个绘图表面,然后才可以将自己的UI表现出来。这个绘图表面是需要由应用程序进程请求SurfaceFlinger服务来创建的,在SurfaceFlinger服务内部使用一个Layer对象来描述。对于在Java层实现的Android应用程序窗口来说,它也需要请求SurfaceFlinger服务为它创建绘图表面,这个绘图表面使用一个Surface对象来描述。在Java层实现的Android应用程序窗口的绘图表面是通过两个Surface对象来描述,一个是在应用程序进程这..

2020-12-10 11:22:03 515

原创 ActivityManagerService服务请求WindowManagerService服务为一个Activity组件创建一个AppWindowToken对象的过程

1、ActivityStack.startActivityLocked() ↓2、WindowManagerService.addAppToken() ↓3、new AppWindowToken() ↓4、mTokenMap.put(token.asBinder(), atoken)

2020-12-09 17:42:52 173

原创 Android UI 渲染博客总结

网上找了一些UI SurfaceFlinger 值得学习的文章Android图形显示系统——概述 可以看看这个作者一系列文章Android图形显示系统——下层显示1:基础知识与相关文件Android图形显示系统——上层显示1:界面绘制大纲Android Render(一)Activity窗口构成和绘制解析Android Render(二)7.1源码硬件加速下draw绘制流程分析Android应用程序窗口(Activity)实现框架简要介绍和学习计划A...

2020-12-02 09:48:52 127

原创 ADB命令

ADB命令

2020-11-12 14:37:42 53

转载 android.mk中几个常见配置

android.mk中几个常见配置

2020-11-12 14:04:21 178

原创 Android Debug 方法集合

Android Tombstone/Crash的log分析和定位开发日志整理3【Android tombstone分析 升级篇】Android Tombstone 分析如何分析android tombstone?Android NDK Tombstone/Crash 分析Android tombstone 分析案例崩溃等抓关键字:logcat | grep -e Fatal -e Crash -e AndroidRuntime -e Exception -e Error -.

2020-11-12 14:03:31 170

转载 Android 实现首次开机启动wizardsetup程序

Android 实现首次开机启动wizardsetup程序Android Provision(开机向导setupwizard程序)

2020-11-11 18:00:47 939

原创 Android系统(Launcher)的启动过程,基于4.4

( 4999): at dalvik.system.NativeStart.main(Native Method)( 4999): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:658)( 4999): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)( 4999): at java.lang....

2020-11-11 14:13:46 249

转载 Android系统init进程启动及init.rc全解析

Android系统init进程启动及init.rc全解析

2020-11-11 10:46:40 97

转载 android WMS

Android窗口系统第一篇---Window的类型与Z-Order确定Android窗口系统第二篇---Window的添加过程

2020-11-06 10:56:19 172

转载 Android 8.1 PowerManagerService分析

Android 8.1 PowerManagerService分析(一)Android 8.1 PowerManagerService分析(二) ——updatePowerStateLocked()方法Android 8.1 PowerManagerService分析(三)——WakeLock机制Android 8.1 PowerManagerService分析(四)——亮屏流程分析Android 8.1 PowerManagerService分析(五)——灭屏流程分析看上五篇就行了.

2020-10-29 10:06:06 536

转载 查找是谁改了content://settings/ 下面数据

有时候,我们会发现默认配置了system 、 global 、secure 数据库的值,但开机后被修改了,如何查找是谁改了数据库里面默认的值?以 :Settings.System.SCREEN_OFF_TIMEOUT 为例,1、修改Settings.java (frameworks\base\core\java\android\provider) 中在class System 内部类的 ,因为有Secure Global 几个内,里面的函数都长的差不多,不要添加错了。public stat.

2020-10-28 13:54:28 677

转载 Android 系统 overlay 总结

For color, bool, string, array, style/theme types, the resource values are identifed by their keys, so for these types, there is no need to put the resources in a file with the same name as in the original base package.For layout, animation, picture draw

2020-10-26 11:05:48 1540

原创 启动一个 Activity 的流程,基于android 4.4

\src\frameworks\base\core\java\android\app\Activity.java startActivity (Activity.java) startActivityForResult (Activity.java) startActivityForResult(intent, requestCode, null);(Activity.java)/src/frameworks/base/core/java/andro...

2020-10-23 13:32:47 150

原创 pm cp rm命令的具体用法

pm 命令是Android里面packageManage的命令行,用于安装包的操作。一般我们在命令行下,可以使用以下命令安装一个新的安装包。1、安装APK:例如,在串口终端下输入:pm install -r /data/card/ApicalRadio.apk就可以重新安装ApicalRadio.apk到android系统上,默认是安装到系统的data/app/目录下。-r 参数表示重新安装,如果原来已经安装了,会覆盖原来的安装包。2、卸载pmuninstall -kcom...

2020-10-22 14:38:12 1048

原创 Android apk 签名

新编译了一个apk 要对他签名,才能替换系统里面对应的apk1、确认系统的apk 在编译的时候 LOCAL_CERTIFICATE 变量给的值是 platform ,还是其他。2、如果LOCAL_CERTIFICATE := platform ,那么就把\src\build\target\product\security\ 目录下的 platform.x509.pem、platform.pk8 拷贝到windows 的E 盘;3、另外拷贝签名工具signapk.jar 到E...

2020-10-15 09:36:41 83

原创 IPTV 踩得坑

IPTVamlogic 方案 升级固件非高安的软件,直接用USB_Burning_Tool 升级;若是遇到刷机挂掉,S905芯片 ,需要短接 R412 电阻 ,然后在用USB_Burning_Tool 升级

2020-09-29 14:44:42 509

原创 Java 网络编程

一、基础常识1、网络编程三要素:    A:IP地址    B:端口    C:协议2、IP地址:    网络中计算机的唯一标识。        计算机只能识别二进制的数据,所以我们的IP地址应该是一个二进制的数据。    但是呢,我们配置的IP地址确不是二进制的,为什么呢?        IP:192.168.1.100           换算:11000000 10...

2018-12-16 23:13:44 139

原创 java Scanner类

Scanner:用于接收键盘录入数据。         它其中一个构造方法 Scanner(InputStream source)package itcast_01;import java.util.Scanner;public class ScannerDemo { public static void main(String[] args) { Scanner sc = ...

2018-08-27 19:47:03 115

原创 Java String类

字符串:就是由多个字符组成的一串数据。也可以看成是一个字符数组。          通过查看API,我们可以知道          A:字符串字面值"abc"也可以看成是一个字符串对象。          B:字符串是常量,一旦被赋值,就不能被改变。如:String str="abc";        构造方法:                  public String():...

2018-08-27 19:46:51 136

原创 Java Math类 Random类 BigInteger类 BigDecimal类 Date类 DateFormat类 Calendar类

1.Math类概述•Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。 成员变量: *         public static final double PI *         public static final double E * 成员方法: *        public static int abs(int a):绝对值 *    ...

2018-08-27 19:41:17 208

原创 Java 正则表达式

1.引入  校验qq号码.          1:要求必须是5-15位数字          2:0不能开头   分析:          A:键盘录入一个QQ号码          B:写一个功能实现校验          C:调用功能,输出结果。package cn.itcast_01;import java.util.Scanner;public class ...

2018-08-27 17:32:27 158

原创 Java StringBuffer类 包装类类型

1.StringBuffer:            线程安全的可变字符串。StringBuffer和String的区别?        前者长度和内容可变,后者不可变。        如果使用前者做字符串的拼接,不会浪费太多的资源。StringBuffer的构造方法:         public StringBuffer():无参构造方法         public...

2018-08-27 15:19:41 312

原创 C++ 符号重载

符号重载:c++符号增加支持自定类型的操作数.实际是一个特殊函数.函数名为:operator 符号   c++ 支持可重载符号:   算术运算符:+,-,*,/,%,++,--   位操作运算符:&amp;,|,~,^,<<,>>   逻辑运算符:!,&amp;&amp;,||;   比较运算符:<,>,>=,<=,==,!=;   赋值运算符:=,+=,-=,*=,/=,%=,&am...

2018-08-25 19:30:55 6812

原创 C++ 简单实现链表模板类

目的在于熟悉 C++ 实现链表类、熟悉模板类#include &lt;iostream&gt;#include &lt;stdio.h&gt;#include &lt;string.h&gt;using namespace std;//前置申明模板类template &lt;class T&gt;class List;//定义节点模板类template &lt;cl...

2018-08-25 17:35:29 2767 2

原创 C++ 类模板、模板类、定义标准输入\输出

模板思想实现与类型无关,只与功能实现有关. 类模板:定义类时数据类型不定 模板类:使用类实例化对象,指定类型.构建一个具体对象#include &lt;iostream&gt;#include &lt;stdio.h&gt;#include &lt;string.h&gt;using namespace std;class Student{ friend istream&...

2018-08-25 17:10:54 2066

原创 C++ 多态、虚函数、抽象类、虚表(二)

虚表深入探究:#include &lt;iostream&gt;#include &lt;stdio.h&gt;using namespace std;typedef void (*PTR_FUN)();class Base{private: virtual void fun() { cout&lt;&lt;"Base fun"&lt;&lt;endl; } ...

2018-08-25 00:36:38 165

原创 C++ 多态、虚函数、抽象类、虚表(一)

多态:派生类继承基类,派生类重写(覆盖)基类的虚方法.实现派生类个性. 基类提供统一接口虚函数,派生类都有不同的实现. 实现多态必同时满足如下三个条件: 1.必须是公有继承 2.基类的方法必须是虚方法 3.必须是通过基类指针或引用调用基类方法         虚函数:存储在虚表(vtable),派生类继承虚表覆盖虚表的基类虚函数        覆盖(override):派生...

2018-08-24 23:37:32 202

空空如也

空空如也

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

TA关注的人

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