自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (14)
  • 收藏
  • 关注

原创 Android YUV数据格式总结

Android中使用MediaCodec做编码时,如果使用MediaCodec的buffer->buffer模式,现阶段一般而言都需要做颜色空间转换,一般Android的Camera支持NV21与YV12格式,而遍历Android上编码器支持格式时,一般都表示如: COLOR_FormatYUV420SemiPlanar COLOR_FormatYUV420PackedPlanar 等格式.所以我们需要了解一下MediaCodec表示的格式与Camera表示的格式有什么不同YUV数据格式COLO

2021-11-29 20:52:28 618

原创 Android 4.4 如何修改Dalvik虚拟机内存分配

功能:通过修改Dalvik虚拟机内存分配并且来降低系统GC回收导致CPU使用率高的问题,这样修改可以降低CPU使用率5%虚拟机的几个重要参数说明:dalvik.vm.heapstartsize堆分配的初始大小,调整这个值会影响到应用的流畅性和整体ram消耗。这个值越小,系统ram消耗越慢,但是由于初始值较小,一些较大的应用需要扩张这个堆,从而引发gc和堆调整的策略,会应用反应更慢。相反,这个值越大系统ram消耗越快,但是程序更流畅。dalvik.vm.heapgrowthlimit极限堆大小,dv

2021-11-29 20:42:53 1792

原创 Android.mk 预编译可执行程序

创建一个main.c文件,在里面打印一些日志#include <stdio.h>#include <string.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <sys/stat.h>#include <fcntl.h>#include <pthread.h> void *my_test_th

2021-11-19 16:34:34 1689

原创 Linux 应用 fork()函数的使用

一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己示例代码:#include <stdio.h>#include <sys/types.h>#

2021-11-19 16:14:39 1067

原创 Android 自定义View 监听WIFI热点状态变化

功能:实现一个监听热点打开和关闭状态显示创建一个WifiApView .java类继承LinearLayout ,该类中主要监听wifi热点状态变化,并且控制热点修改热点图标的显示public class WifiApView extends LinearLayout { private static final String TAG = WifiApView.class.getSimpleName(); public static final boolean DEBUG = fals

2021-11-19 15:23:21 1846

原创 Camera YUV数据如何保存到本地

Camera YUV数据如何保存到本地public void writeYuvToFile(String path, byte[] data) { FileOutputStream out = null; try { File file = new File(path); File parent = file.getParentFile(); if (parent != null && !parent.exists()) p

2021-11-17 16:46:57 486

原创 Camera YUV数据转换Jpeg和Bitmap图片格式并保存到本地

Camera YUV数据转换Jpeg图片格式并保存到本地private void saveYuv2Jpeg(String path, byte[] data) { YuvImage yuvImage = new YuvImage(data, ImageFormat.NV21, mWidth, mHeight, null); ByteArrayOutputStream bos = new ByteArrayOutputStream(data.length); boolean resu

2021-11-17 16:37:18 886

原创 Android.mk 编译Android Studio工程源码

Android.mk文件LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(call all-java-files-under, app/src/main/java)LOCAL_PACKAGE_NAME := TestLOCAL_SDK_VERSION := current#LOCAL_PROGUARD_FLAG_FILES := prog

2021-11-17 15:50:22 1311

原创 Linux 应用 getpid()和getppid()的使用

一、接口介绍getpid():获取当前进程号getppid():获取父进程号代码示例#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(void){ pid_t p1 = -1, p2 = -1; printf("hello.\n"); p1 = getpid(); printf("pid = %d.\n", p1); p2 = getppid(); p

2021-11-17 15:48:10 1036

原创 Linux 应用 environ环境变量操作函数

功能:打印Lunux下面环境变量#include <stdio.h>int main(void){ extern char **environ; // 声明就能用 int i = 0; while (NULL != environ[i]) { printf("%s\n", environ[i]); i++; } return 0;}日志打印wang@R720:~/LinuxStudy/process$ ./testLC_PAPER=zh_CN.UTF-8

2021-11-17 15:04:49 479

原创 Linux 应用 硬连接和软连接的区别

硬连接硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放

2021-11-17 15:01:08 289

原创 Android 4.4 PhoneWindowManager如何给自定义按键添加长按功能

代码路径:frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java在PhoneWindowManager.java文件中添加长按和抬起功能volatile boolean mRecordOkKeyHandled; private void interceptRecordOkLongKeyDown(boolean handled){ mRecordOkKeyHandled = hand

2021-11-16 17:09:55 1168

原创 Android.mk编译java动态库

一, java动态库程序代码在Anroid层根目录新建study/java_lib/lib目录, 并创建文件名:com/wq/mytestjar/Test.javapackage com.wq.mytestjar;public class Test{ private int a; private int b; private int c; public Test(int a, int b, int c) { this.a = a; this.b = b; this.c =

2021-11-15 16:54:19 1541

原创 Android 11 如何通过局域网ADB调试

问题:在调试的时候通常都会用到局域网adb功能1、system/core/rootdir/init.rcdiff --git a/rootdir/init.rc b/rootdir/init.rcindex a9af0b0..10c4bd0 100644--- a/rootdir/init.rc+++ b/rootdir/init.rc@@ -930,7 +930,12 @@ on boot # Define default initial receive window size in

2021-11-15 13:45:29 1753

原创 Android 4.4 如何添加局域网ADB调试流程

需求:在我们开发过程中,如果通过usb线不能调试,那么只能通过局域网adb来调试。代码路径:system/core/adb/adb.csystem/core/adb/services.cexternal/sepolicy/property_contextssystem/core/init/property_service.cframeworks/base/packages/SystemUI/src/com/android/systemui/usb/UsbDebuggingActivity.jav

2021-11-15 13:43:08 1487

原创 Android11 如何修改默认时区

代码路径:build/make/core/main.mkdiff --git a/core/main.mk b/core/main.mkold mode 100644new mode 100755index 85b5841..5bcb396--- a/core/main.mk+++ b/core/main.mk@@ -372,7 +372,8 @@ endif BUILD_WITHOUT_PV := true ADDITIONAL_BUILD_PROPERTIES += net.bt

2021-11-14 17:48:50 1535

原创 Android11 网络无法更新时间

代码路径:frameworks/base/core/res/res/values/config.xml--- a/core/res/res/values/config.xml+++ b/core/res/res/values/config.xml@@ -2037,7 +2037,7 @@ <bool name="config_actionMenuItemAllCaps">true</bool> <!-- Remote server that ca

2021-11-14 17:47:13 1043

原创 Android 10 如何默认给应用授权获取IMEI

代码路径:frameworks/base/telephony/java/com/android/internal/telephony/TelephonyPermissions.java在TelephonyPermissions.java文件中checkReadDeviceIdentifiers()方法中默认给应用授权 @VisibleForTesting public static boolean checkReadDeviceIdentifiers(Context context,

2021-11-13 17:43:02 1732

原创 Android 4.4 如何添加按键流程

代码路径:frameworks/base/data/keyboards/Generic.klframeworks/base/data/keyboards/qwerty.kl/device/sprd/sharkle/common/rootdir/system/usr/keylayout/gpio-keys.klframeworks/native/include/input/KeycodeLabels.hframeworks/native/include/android/keycodes.hfram

2021-11-13 15:20:29 897

原创 Android11 如何将系统默认设置中文

代码路径:build/make/target/product/full_base.mkbuild/make/target/product/languages_default.mk在full_base.mk文件中修改默认中文diff --git a/target/product/full_base.mk b/target/product/full_base.mkold mode 100644new mode 100755index ffd3cde..e1453c2--- a/target/pr

2021-11-13 14:13:19 1713 1

原创 Android11 不休眠 删除锁屏

代码路径:device/rockchip/rk356x/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xmlframeworks/base/packages/SettingsProvider/res/values/defaults.xml1、在device/rockchip/rk356x/overlay/frameworks/base/packages/SettingsProvider/res/values/

2021-11-13 14:09:24 740

原创 Binder的使用以及核心机制分析,跨进程的实现原理

Binder可以提供系统中任何程序都可以访问的全局服务。这个功能当然是任何系统都应该提供的Android Binder框架分为服务器接口、Binder驱动、以及客户端接口;简单想一下,需要提供一个全局服务,那么全局服务那端即是服务器接口,任何程序即客户端接口,它们之间通过一个Binder驱动访问。Binder框架原理分析1、ISettingToServer.aidl文件生成的Java文件public interface ISettingToServer extends android.os.IInt

2021-11-13 09:13:53 564

原创 Android 10 解决在系统应用服务中不能拉起另外一个应用服务问题

需求:由于安卓10系统添加省电管理,在服务里面不能启动另外一个应用的服务,如果想要启动另一个应用的服务,就必须要把该应用添加到省电管理的白单代码路径:vendor/sprd/modules/power/fw-power-config/appPowerSaveConfig.xml在appPowerSaveConfig.xml文件中把需要启动应用服务添加到白名单中<?xml version='1.0' encoding='utf-8' standalone='yes' ?><app_

2021-11-12 13:45:04 935

原创 Android.mk 文件中如何编写打包so库到应用目录中

如何将第三方应用打包到system/app进行so库自我拷贝到应用对应目录下1、创建该应用文件夹,然后在里面创建一个lib文件夹,将so库放到里面2、编写Android.mk文件LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := 模块名LOCAL_MODULE_TAGS := optionalLOCAL_CERTIFICATE := PRESIGNED#LOCAL_MODULE_PATH := $(TARGET_

2021-11-12 11:45:09 1719

原创 Android 8.1 如何查看系统支持哪些音视频编解码格式

代码路径:frameworks/av/media/libstagefright/omx/SoftOMXPlugin.cpp在SoftOMXPlugin.cpp文件中kComponents[]结构体中可以查看音视频编解码支持格式static const struct { const char *mName; const char *mLibNameSuffix; const char *mRole;} kComponents[] = { { "OMX.google.a

2021-11-11 15:17:31 3986

原创 Android 4.4 如何修改背光最小亮度和最大亮度

代码路径:frameworks/base/core/res/res/values/config.xml在config.xml文件中修改这两个属性就可以修改最小亮度和最大亮度 <integer name="config_screenBrightnessSettingMinimum">10</integer> <!-- Maximum screen brightness allowed by the power manager. The user

2021-11-09 17:54:30 960

原创 Android 4.4 如何屏蔽壁纸功能

代码路径:frameworks/base/core/res/res/values/config.xml在config.xml文件中config_enableWallpaperService该变量字段是否加载壁纸服务的条件<bool name="config_enableWallpaperService">false</bool>备注:该变量为true,则加载壁纸服务。该变量为false,则不加载该壁纸服务...

2021-11-09 17:48:46 1209

原创 Android 4.4 如何设置物理键盘不可用

代码路径:frameworks/base/services/java/com/android/server/wm/WindowManagerService.java在/WindowManagerService.java文件中computeScreenConfigurationLocked方法中hardKeyboardAvailable设置false表示物理键盘不可用boolean hardKeyboardAvailable = false;//config.keyboard != Configurat

2021-11-09 17:47:37 693

原创 Android WindowManager.LayoutParams.type属性总结

type 的取值:应用程序窗口。 public static final int FIRST_APPLICATION_WINDOW = 1; 所有程序窗口的“基地”窗口,其他应用程序窗口都显示在它上面。 public static final int TYPE_BASE_APPLICATION =1; 普通应用功能程序窗口。token必须设置为Activity的token,以指出该窗口属谁。 public static final int TYPE_APPLI

2021-11-05 16:10:37 2501

原创 Android 4.4 如何在ShutdownThread类中添加Native方法

代码路径:frameworks/base/services/java/com/android/server/power/ShutdownThread.javaframeworks/base/services/jni/onload.cppframeworks/base/services/jni/com_android_server_power_ShutdownThread.cpp在ShutdownThread.java文件中定义一个Native方法public static native void

2021-11-05 13:52:07 146

原创 Android 4.4 系统关机流程

代码路径:frameworks/base/services/java/com/android/server/power/PowerManagerService.javaframeworks/base/services/java/com/android/server/power/ShutdownThread.java日志关键TAG:ShutdownThread、PowerManagerService在应用层调用shutdown()方法进行关机private void shutdown() {

2021-11-05 11:01:26 302

原创 Android 4.4 SystemUI 状态栏和导航栏加载流程

代码路径:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.javaframeworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.javaframeworks/base/packages/SystemUI/src/com/android/syste

2021-11-04 20:00:52 428

原创 如何top命令查看进程信息和cpu占用率分析

top通过top命令查看进程信息通过adb shell top -h查看其使用方法130|root@sp9820e_1h10:/ # top -hUsage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ] -m num Maximum number of processes to display. -n num Updates to show before

2021-11-04 19:57:39 7253

原创 Android 4.4 如何修改热点密码

如何修改热点密码private WifiManager mWifiManager;mWifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);WifiConfiguration mWifiConfig = mWifiManager.getWifiApConfiguration();mWifiConfig.preSharedKey = value;//该value就是设置密码if (mWifiManager.get

2021-11-02 11:30:42 266

原创 Android 4.4 如何在PhoneWindowManager中裁剪应用区域距离顶部的高度

代码路径:frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java在PhoneWindowManager.java文件中getNonDecorDisplayHeight()方法中获取应用区域的高度,应用区域分两种情况:1、当导航栏显示的时候,应用区域会减去导航栏的高度。2、当状态栏显示的时候,应用区域的距离会减去状态栏的高度public int getNonDecorDisplayHeight

2021-11-01 17:31:56 288

livepush.rar

摄像头出来的YUV数据采用MediaCodec进行编码H.264,采用AudioRecord来采集音频PCM数据并使用MediaCodec编码为AAC数据,然后再把H.264数据和AAC数据封装为FLV格式,再利用RTMP进行推流

2021-08-31

NDK ffmpeg fdk-aac x264开发包以及脚本

该NDK开发包中包含如下:ffmpeg-4.2.2、fdk-aac-2.0.0.tar、android-ndk-r20b-windows-x86_64、android-ndk-r20b-linux-x86_64。编译脚本:build_android_ffmpeg_all.sh、build_fdk_aac.sh、build_x264.sh

2021-08-27

FFmpegAndroid.zip

FFmpeg Android 实现本地推流直播

2021-08-27

00000.tcpdump.2021-06-30_10.21.09.cap

利用tcpdump分析RTMP推流网络包:握手、连接、推流

2021-07-02

libyuv32位和64位静态库.rar

libyuv32位和64位静态库,实现对各种yuv数据之间的转换,包括数据转换,裁剪,缩放,旋转 。

2020-06-10

JNI线程使用.rar

Android C++多线程、生产者和消费者模型、JNI的使用,代码中主要写了一些测试例子验证程序,方便后续使用

2020-02-26

FFmpeng编译脚本和so库.rar

FFmpeg移植安卓平台,使用FFmpeg3.3.9和NDK14b编译处理的so库和全平台编译脚本。

2020-02-25

MKdemo.rar

详细说明NDK-AndroidStudio添加Android.mk文件打包动态so库使用,其中详细说明Android.mk和build.gradle文件

2020-02-05

时钟功能代码

自定义时钟、是根据效果图片来自定义的时钟,附见源码

2018-10-11

下载校准文件META工具

由于有时候会格式化系统,那么就会导致4G会掉线,那么就要自己用工具重新下载校准文件进去

2018-06-12

ShareSDK分享封装好工具

Android开发中,我们的项目都会用到第三方分享,这个Demo是我封装好的一个ShareSDK,可以下载下来直接用,用法可以去官网把那些代码复制过去就可以了,不懂就给我留言。

2016-06-28

安卓自带Parcelable序列化

Parcelable序列化实例

2016-06-28

Android颜色取色器

Android开发中,有时候美工给我们的设计图,并不是每个都标有颜色值,那么我们就可以用颜色取色器来看那是什么颜色。

2016-06-20

安卓反编译工具

安卓开发过程中,到了项目上线时,我们会反编译项目有没有混淆成功

2016-06-14

空空如也

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

TA关注的人

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