自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(379)
  • 资源 (60)
  • 收藏
  • 关注

原创 NDK10_NDK开发流程、JNI线程

NDK开发汇总一 NDK开发流程使用so库和头文件开发gradle指定开发平台,在defaultConfig目录里面ndk {abiFilters “armeabi”,“x86”}引入第三方库,在app.gralde中的android目录下 sourceSets.main {jniLibs.srcDirs = [‘libs’]jni.srcDirs = []}C++中找不到...

2020-03-21 21:37:43 204

原创 NDK09_静态注册与动态注册

使用一种数据结构JNINativeMethod来记录java native函数和JNI函数的对应关系移植方便(一个java文件中有多个native方法,java文件的包名更换后)

2020-03-21 17:24:09 262

原创 NDK09_JNI源码分析

NDK开发汇总一Java Native Interface我们知道cpu只认得“0101101”类似这种符号,C、C++这些代码最终都得通过编译、汇编成二进制代码,cpu才能识别。而Java比C、C++又多了一层虚拟机,过程也复杂许多。Java代码经过编译成class文件、虚拟机装载等步骤最终在虚拟机中执行。class文件里面就是一个结构复杂的表,而最终告诉虚拟机怎么执行的就靠里面的字节码说明...

2020-03-21 17:18:01 142

原创 NDK09_JNI编译过程及AS新建一个JNI项目

NDK开发汇总一 JNI原理1 编译cpu识别的是“0101”的字符c/c++ ========= 二进制文件编译:xxx.c ------> windows .obj 语法 Linux .o链接:.o -----> log.so2 编译规则:Eclipse GUN ----> Android.mkAndroid Studio: LL...

2020-03-18 23:55:39 215

原创 NDK08_JNI访问数组、引用、异常、缓存

NDK开发汇总一 JNI访问数组定义native方法生产.h文件public class JniMain { public native void giveArray(int[] inArray); }/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header...

2020-03-16 21:16:01 180

原创 NDK07_JNI读取和返回字符串

NDK开发汇总一 定义native方法,生成.h头文件public class Jni_Test { public native String chineseChars(String str);}ray_Jni_Test.h/* DO NOT EDIT THIS FILE - it is machine generated */#include "jni.h"/* Header ...

2020-03-15 11:24:07 353

原创 NDK07_JNI获取Java中类方法、构造函数

一 定义native方法,编译生成ray_JniTest.h头文件public class JniTest { int getRandomInt(int max) { return new Random().nextInt(max); } static String getRandeomUUId() { return UUID.randomUUID(...

2020-03-15 00:04:49 617

原创 NDK06_JNI实现native方法,获取类普通成员、类静态成员

NDK开发汇总一 定义Native方法public class JniMain { public String key = "key"; public static int count = 9; public native static String getStringFromC(); public native String getStringFromC2(...

2020-03-14 22:50:53 240

原创 性能优化07_电量优化:battery-historian工具使用

数据准备battery-historian工具需要使用bugreport中的Battery History先断开adb服务,然后开启adb服务adb kill-server 这一步很重要,因为当我们开发时做电量记录时会打开很多可能造成冲突的东西。为了保险起见我们重启adb。adb devices就会自动连接查找手机。当然也可以adb start-server重置电池数据收集数据,我...

2020-03-14 21:35:09 775

原创 NDK06_JNI理解、简单调用和基本数据类型

NDK开发汇总一 JNI理解JNI: java native interface使用环境:java api 不能满足我们程序的需要的时候。算法计算,图像渲染 效率要求非常高,当需要访问一些已有的本地库NDK:工具的集合。帮助开放者快速开放C/C++ 动态库的工具。二 JNI简单调用编写native 方法javah 命令,生成.h 文件java_类的全名_方法名...

2020-03-11 22:13:59 177

原创 NDK05_C:预处理指令、Define指令

一 预处理指令C 语言执行的流程:组成程序的每个源文件通过编译过程分别转换成目标代码(object code)各目标文件由连接器 捆绑在一起,形成一个单一而完整的可执行文件而编译过程又由如下过程组成:预处理器处理,在这个阶段,预处理器在源代码上执行一些文本操作。例如:用实际值代替由 #define指令定义的符号以及读入由#include指令包含的文件的内容。源代码经过解析,判断它...

2020-03-10 23:08:58 237

原创 NDK05_C:文件简单加密

NDK开发汇总一 文本文件加解密void encode(char normal_path[], char encode_path[]) { FILE * normal_fp = fopen(normal_path, "r"); FILE * encode_fp = fopen(encode_path, "w"); int ch; while ((ch = fgetc(normal_f...

2020-03-10 22:28:30 140

原创 NDK05_C:文件读写

NDK开发汇总一 读文件int test5() { //自己定义的文件地址 char *path = (char*)"C:\\Users\\PF0ZYBAJ\\Desktop\\files\\friends.txt"; FILE *fp = fopen(path, "r"); char buff[500]; while (fgets(buff, 50, fp)) { prin...

2020-03-09 22:30:57 229

原创 NDK04_C:const、typedef、union共用体

一 typedef就是别名,类似java 代理并没有创建新的数据类型,只是给现有类型创建了别名二 union

2020-03-08 16:42:12 182

原创 NDK04_C:结构体、结构体指针、 结构体中指针成员

NDK开发汇总一 结构体结构体: 一系列不同类型的数据的结合强调:类型!= 变量。 结构体名代表的只是结构体类型,没有内存空间。结构体中的成员可以单独使用二 结构体指针在结构体里面添加函数指针成员变量在结构体中添加结构体变量拓展:实现一个双向链表,存储的是随机数据(int | char *)。增删改查。并且对双链表数据进行排序三 typedef就是别名,类似java代理,并没...

2020-03-07 11:12:15 348 3

原创 NDK03_C:字符串及常见字符串函数

函数名: stpcpy功 能: 拷贝一个字符串到另一个用 法: char *stpcpy(char *destin, char *source);程序例:#include <stdio.h>#include <string.h>int main(void){char string[10];char *str1 = “abcdefghi”;stpcpy...

2020-03-05 21:21:06 256

原创 NDK03_C:函数指针、内存分配

NDK开发汇总===函数指针=函数名是一个函数的首地址,所以我们可以将函数赋值给对应类型的函数指针void 类型的指针:类似:java object指针变量都是4个字节。都是用十六进制表示。void* -》 int * / char * /float*下面两个表达式完全不同int(*calc2)(void a, void ); 函数指针int p(int a, int b); 一...

2020-03-05 21:18:34 153

原创 NDK02_C:指针、指针运算、多级指针与函数指针

从专业角度了解指针的作用会使用指针进行基本运算会使用指针作为函数的参数会使用指针数组和数组指针会使用二级指针会使用函数指针指针运算:*p 代表是它所指的地址上面的值的运算p++ 是p 指针变量++,结果就是:p指向它的下一个地址=======================================================数组与指针通过数组下标所能完成的任何操作...

2020-03-05 21:14:13 187

原创 性能优化19_HandlerThread+Loader

Android性能优化汇总1.减轻主线程的压力,提高UI的流畅度2.可以处理多个任务,开启一个线程起到多个线程的作用(looper共享)HandlerThread与Camera的能够Looper共享1 相机调用优化打开相机预览回调(编码)异步任务的Looper,使用的MainLooperHandler.handleMessage的执行,一定在它的Looper线程中onPrevie...

2020-02-27 18:09:05 239

原创 性能优化18_提升程序的启动速度及Splash页面设计

1.启动分为两种方式:1)冷启动:当直接从桌面上直接启动,同时后台没有该进程的缓存,这个时候系统就需要重新创建一个新的进程并且分配各种资源。2)热启动:该app后台有该进程的缓存,这时候启动的进程就属于热启动。热启动不需要重新分配进程,也不会Application了,直接走的就是app的入口Activity,这样就速度快很多2.如何测量一个应用的启动时间使用命令行来启动app,同时...

2020-02-27 18:02:11 197

原创 性能优化17_service进程防杀死

Android性能优化汇总Serviceservice:是一个后台服务,专门用来处理常驻后台的工作的组件。即时通讯:service来做常驻后台的心跳传输。1.良民:核心服务尽可能地轻!!!很多人喜欢把所有的后台操作都集中在一个service里面。为核心服务专门做一个进程,跟其他的所有后台操作隔离。树大招风,核心服务千万要轻。一、优先级进程的重要性优先级:(越往后的就越容易被系统杀...

2020-02-27 17:57:20 259

原创 性能优化16_热更新(编辑中)

Android性能优化汇总热修复阿里系:DeXposed。andfix从底层C的二进制来入手的。腾讯系:tinkerJava类加载机制来入手的。一 什么是热修复?一般的bug修复,都是等下一个版本解决,然后发布新的apk。热修复: 可以直接在客户已经安装的程序当中修复bug。bug一般会出现在某个类的某个方法地方。我们需要动态地将客户手机里面的apk里面的某个类给替换成...

2020-02-23 16:36:46 205

原创 性能优化15_安装包优化

Android性能优化汇总一个字:删!!删不了就尽量小一 常见的优化方式1.图片压缩图片:apk里面的资源图片 压缩图片svg图片:一些图片的描述,牺牲CPU的计算能力的,节省空间。使用的原则:简单的图标。webp:谷歌现在非常提倡的使用。保存图片比较小。VP8派生而来的。webp的无损压缩比PNG文件小45%左右,即使PNG进过其他的压缩工具压缩后,任然可以减小到PNG的28%...

2020-02-22 16:37:34 206

原创 性能优化14_多线程优化

Android性能优化汇总一 生产者与消费者模式public class ThreadTest { //产品 static class ProductObject { //线程操作变量可见 public volatile static String value; } //生产者线程 static class Produ...

2020-02-19 21:17:15 242

原创 性能优化13_数据传输效率优化

Android性能优化汇总一 FlatBuffer使用原有在做 Android 开发的时候,JSON 是最常用的数据序列化技术。JSON 的可读性很强,但是序列化和反序列化性能却是最差的。解析的时候,JSON 解析器首先,需要在内存中初始化一个对应的数据结构,这个事件经常会消耗 100ms ~ 200ms2;解析过程中,要产生大量的临时变量,造成 Java 虚拟机的 GC 和内存抖动,解析 2...

2020-02-15 16:23:37 646

原创 性能优化12_Android高清显示图片:哈夫曼算法

Android性能优化汇总一 原理同样的图片,在ios手机上显示的效果要比安卓手机上效果要好?图片处理引擎用的是pc上的图片处理引擎skia去掉一个编码算法—哈夫曼算法。采用定长编码算法**原因:**当时由于CPU和内存在手机上都非常吃紧 性能差,由于哈夫曼算法非常吃CPU,被迫用了其他的算法。需求:,随着安卓设备硬件水平的提升,可以在性能的安卓设备上使用一些比较耗费性能的算法,使得...

2020-02-08 19:46:26 530

原创 性能优化11_Bitmap压缩

Android性能优化汇总1 质量压缩原理: 通过算法抠掉(同化)了图片中的一些某个些点附近相近的像素,达到降低质量介绍文件大小的目的。注意: 它其实只能实现对file的影响,因为bitmap在内存中的大小是按照像素计算的,也就是width*height,对于质量压缩,并不会改变图片的真实的像素使用场景: 将图片压缩后保存到本地,或者将图片上传到服务器。根据实际需求来。实现代码 ...

2020-02-05 19:40:12 291

原创 性能优化11_Http请求缓存

Android性能优化汇总1 设置缓存Android系统默认的HttpResponseCache(网络请求响应缓存)是关闭的//这样开启,开启缓存之后会在cache目录下面创建http的文件夹,HttpResponseCache会缓存所有的返回信息 File cacheDir = new File(getCacheDir(), "http");//缓存目录 long maxSize = ...

2020-02-05 19:00:15 298

原创 性能优化09_WakeLock在下载任务中的简单使用

Android性能优化汇总性能优化09_WakeLock1 需求使用异步进行下载, 为了防止下载中断,使用WakeLock2 WakeLock实现public class WakeLockActivity extends AppCompatActivity { TextView wakelock_text; PowerManager pw; PowerManag...

2020-02-05 15:24:10 276

原创 性能优化10_JobScheduler源码

1 JobScheduler 实现获取 JobScheduler tm = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);两个方面分析:系统服务什么时候启动的寻找是否有JobSchedulerService的类结果:发现JobSchedulerService 存在JobSchedulerService...

2020-01-26 20:45:46 291

原创 性能优化10_JobScheduler

Android性能优化汇总一 JobSchedulerwake_lock虽然好用,但是也会导致cpu频繁的被唤醒,系统提供给我们更好的API去使用:JobScheduler二 主要代码自定义一个JobService@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)public class MyJobService extends Job...

2020-01-21 20:25:42 2399

原创 性能优化09_WakeLock

Android性能优化汇总一 什么是wake_lockwake_lock锁主要是相对系统的休眠而言的,意思就是我的程序给CPU加了这个锁那系统就不会休眠了,这样做的目的是为了全力配合我们程序的运行。有的情况如果不这么做就会出现一些问题,比如微信等及时通讯的心跳包会在熄屏不久后停止网络访问等问题。所以微信里面是有大量使用到了wake_lock锁。wake_lock:两种锁,一种计数锁;非计数锁...

2020-01-21 20:16:10 343

原创 性能优化08_电量优化:监控电量状态

Android性能优化汇总1 监控电量状态需求比如:360手机助手,当充上电的时候,才会自动清理手机垃圾,自动备份上传图片、联系人等到云端。原理通过监控电量状态来进行电量管理。获取手机的当前充电状判断只有当前手机为充电状态时 才去执行一些非常耗电的操作。是否充电代码 private boolean checkForPower() { //获取电池的充电状态 ...

2020-01-21 15:43:54 2720

原创 性能优化07_电量优化:battery-historian安装

工具开源地址: https://github.com/google/battery-historian根据gitbub上面介绍,Battery History工具的安装有两种方式:通过安装Docker环境来安装。(这种方式很简单,Docker真心好用,太彪悍了!)Docker是一种容器,一般用于云计算和大数据平台。提倡的一种思想就是:软件即服务。这句话不是盖的,一句话就可以将别人发布的doc...

2020-01-17 18:10:17 624

原创 性能优化06_渲染优化详解

Android性能优化汇总卡顿现象渲染功能是应用程序最普遍的功能,开发任何应用程序都是这样,一方面,设计师要求为用户展现可用性最高的超然体验,另一方面,那些华丽的图片和动画,并不是在所有的设备上都能刘畅地运行。我们来了解一下什么是渲染性能。首先,我们要知道Android系统每隔16ms就重新绘制一次Activity,也就是说,我们的应用必须在16ms内完成屏幕刷新的全部逻辑操作,这样才能达到...

2020-01-17 09:17:15 1288

原创 性能优化07_电量消耗的全过程分析

Android性能优化汇总设备忙着执行各种任务和各种复杂计算,秀自拍上传朋友圈图片、秀直播,设备硬件正在快速消耗电池电量来完成这些任务。很明显,你的任务处理的越复杂,电量就会消耗的越多和越快,一眨眼的功夫电量就消耗完了,用户的手机顿时变成个累赘的砖头了,这时候用户就会怀疑谁(哪个app)这么耗电,把它卸了!写出耗电量低的应用的关键是要透彻理解它的全部过程。在电子编程世界,这种硬件消耗电量 ...

2020-01-17 09:01:05 372

原创 性能优化09_布局优化及Hierarchy Viewer使用

Android性能优化汇总在我们的绘制渲染机制里面比较耗时的:1.CPU计算时间CPU的优化,从减轻加工View对象成Polygons和Texture来下手View Hierarchy中包涵了太多的没有用的view,这些view根本就不会显示在屏幕上面,一旦触发测量和布局操作,就会拖累应用的性能表现。1.如何找出里面没用的view呢?或者减少不必要的view嵌套。工具:Hierarc...

2020-01-16 08:26:33 268

原创 性能优化06_渲染机制

性能优化05_UI卡顿分析之内存抖动和计算性能优化性能优化05_View防止过度绘制+减少布局结构(减少测量等计算)

2020-01-15 20:53:20 256

原创 性能优化08_内存抖动和计算性能优化案例

1 BusyUIThread:Display an image.(图片RGB色值变换加载)private class SepiaFilterTask extends AsyncTask<Bitmap, Void, Bitmap> { @Override protected Bitmap doInBackground(Bitmap... bitmaps...

2020-01-15 17:44:43 217

原创 性能优化05_Allocation Tracker

Android性能优化汇总一 Allocation Tracker1 作用追踪内存分配信息。可以很直观地看到某个操作的内存是如何进行一步一步地分配的2 使用在Memory窗口中点击图中标红的部分,启动追踪,再次点击就是停止追踪,随后自动生成一个alloc结尾的文件,这个文件就记录了这 次追踪到的所有数据,然后会在右上角打开一个数据面板:查看内容Arrange by pack...

2020-01-13 21:05:42 290

解释器模式案例源码Demo

解释器是一种用的比较少的行为模式,其提供了一种解释语言的语法,或者表达式的方式。该模式定义了一个表达式的接口。

2017-10-08

设计模式之命令模式

将请求封装成一个对象,从而让用户使用不同的请求把客户端参数化。请求排队或者记录请求日志,以及支持可撤销的操作

2017-10-06

责任链模式

虽然是Android项目,但可以将java文件拷贝出来运行。 使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系,将这些对象形成一条链,并沿着这条链传递该请求,直到有对象处理它为止。

2017-10-05

面向切面设计AOP

把我们某个方面的功能提取出来与一批对象进行隔离,这样与一批对象之间降低耦合性,对某个功能进行编程

2017-10-05

建造者模式

安卓项目,但是java代码,拷贝java文件即可。通俗的讲,将对象的复杂创建和对象的使用分离开,这样对象的创建时可以定制不同的类型的属性,而对象的使用只关注于调用。

2017-10-05

单例模式(饿汉模式、懒汉模式、DCL单例模式、枚举)

饿汉模式、懒汉模式、DCL单例模式、枚举;不同情况下使用不同的单例创建模式

2017-10-01

Prototype Pattern原型模式

原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

2017-10-01

ListViewSuspend

ListView滚动悬浮效果;(1)ListView外面套一层相对布局,隐藏一个标题 (2)监听ScrollView的滚动

2017-09-28

Suspenion滚动效果

ScrollView实现悬浮效果;ScrollView上滑时,ScrollView中内容标题会“固定住”,下滑时,滚动一段距离标题又随着ScrollView滚动

2017-09-28

Picasso加载圆角图片

Picasso加载网络图片设置圆角

2017-08-24

DialogActivity

DialogActivity,Activity设置成dialog样式,设置圆角,背景,区域外不可点击

2017-08-07

CycleViewPager

ViewPager实现轮播图效果,可无限向左向右滑动,Pager切换动画正常,代码封装,2行代码引入使用

2017-07-17

弹出框SnackBar

SnackBar简单使用,改变SnackBar样式,改变SnackBar位置

2017-07-05

列表Item拖拽和滑动删除

ItemTouchHelper、RecyclerView、列表长按移动、左右滑动删除

2017-07-03

RecycleViewAddHeadandFoot

RecycleView添加头部和底部,支持GridLayout模式

2017-06-30

RecycleViewDivider

RecycleView添加分割线的两种方法:item布局实现;ItemDecoration实现

2017-06-29

HelloRecyclerview

Recyclerview的基本使用,三种LayoutManger,加载更多,点击事件

2017-06-29

ViewPager动画

ViewPager翻转动画,启动页面动画,视觉动画,3D翻转,缩放,卡牌效果

2017-06-21

ViewPager切换动画

ViewPager切换动画,启动页动画,3D翻转动画,视觉动画,卡牌效果

2017-06-21

FlowLayout

流式布局,搜索标签,搜索结果

2017-06-08

JNI编程指南与规范.zip

JNI程序员指南与规范.pdf + 06 JNI编程指南.pdf NDK开发汇总 https://blog.csdn.net/baopengjian/article/details/104615972 THIS book covers the Java™ Native Interface (JNI). It will be useful to you if you are interested in any of the following: • integrating a Java application with legacy code written in languages such as C or C++ • incorporating a Java virtual machine implementation into an existing application written in languages such as C or C++ • implementing a Java virtual machine • understanding the technical issues in language interoperability, in particular how to handle features such as garbage collection and multithreading

2020-05-06

makeFile编译.zip

- 有minus.c、multi.c、plus.c、divi.c 四个文件实现了加减乘除,声明在include/common.h; - main.c声明common.h并使用了plus.c中的方法 - 要求将上述的文件打包成一个可执行文件

2020-04-23

GNU_Make_3.80_cn.zip

1970年问世以来已经度过了45年的时光而魅力不减, makefile是在打包apk过程中所用到的一个工具,他是来生成so的。 在很多大型项目中

2020-04-21

GifPlayerDemo(无bug).rar

系统源码层打造性能极致播放 利用系统源码类库播放gif 利用像素算法遍历绘制图形 创建Movie实例,绘制每一帧图片来达到Gif动态效果。 部分Gif图片不能自适应大小, 播放速度比实际播放速度快, 如果要显示的gif过大, 还会出现OOM的问题。

2020-04-17

系统关键服务是如何进行守护.zip

## 知识点: - init进程源码详解 - init.rc配置文件分析 - 系统服务的加载原理 - init进程如何使用SIGCHLD信号 - 系统服务杀死后如何启动原理分析 - 系统服务守护过程中 socket执行原理

2020-04-12

Socket进程守护.zip

创建ServerSocket对象绑定监听端口 通过accept()方法监听客户端的请求 建立连接后,通过输入输出流读取客户端发送的请求信息。

2020-04-11

NDK20_线程轮询实现双进程守护

1. app主进程什么时候被杀死 如何监听 2. 因为我们的进程是fork出来的,fork出来的进程父进程是app进程号当app被kill掉时,子进程被孤儿init领养 变成了空进程。怎样在监听自己变成死亡进程: 在Linux系统下,如果使用sigaction将信号SIGCHLD的sa_flags中的SA_NOCLDSTOP选项打开,当子进程停止(STOP作业控制)时, 不产生此信号(即SIGCHLD)。不过,当子进程终止时,仍旧产生此信号(即SIGCHLD)。 3. 如何重启服务 - am命令

2020-04-09

NDK14_Linux基础:Shell命令,用户权限管理

**文件比较** ```bash -d 检查是否存在,并且是一个目录 -e 检查file是否存在 -f 检查是否存在,并且是一个文件 -r 检查是否存在,并且可读 -w、-x file1 -nt file2 file1比file2新 file1 -ot file2 file1比file2旧 ``` ## 4 case命令

2020-03-29

NDK14_C++基础:友元,模板方法,模板类,类型转换

一 友元 类似 java 中享元模式:实例的共享(ImageLoader Lru 算法 存储图片) 友元:类或函数的共享 优点:提高效率、表达清晰 缺点:破坏封装性 特征: 友元函数不能被派生类继承 友元函数不能使用this

2020-03-28

Extension.zip

一 继承 一个最简单的继承案例 继承的权限 继承的二义性 多继承 虚继承 二 虚函数 虚函数引发的内存泄漏: 纯虚函数(抽象类) 三 多态

2020-03-27

NDK13_C++基础:构造函数、拷贝构造函数、浅拷贝与深拷贝.zip

adb shell 进入,命令: dumpsys meminfo 包名 MyTeacher teacher; 1 C++中 这个语句执行完毕,在当前的堆内存内 初始化并且赋值好该对象 在java中执行这个语句,只是开辟了一块内存空间,并没初始化和赋值对象, 必须用new关键字,来进行初始化和赋值 ———————————————— 版权声明:本文为CSDN博主「鱼包子Ray」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/baopengjian/article/details/105101785

2020-03-26

Project2.zip

右键项目-在文件资源管理器中打开文件夹 项目文件夹下创建两个文件夹(如:ConsoleApplication1\ConsoleApplication1 下 新建include、src文件夹) 头文件-添加现有项-选择include文件夹-创建一个.h文件,添加新的cpp文件到src目录 属性-C/C+± 常规- 附加包含目录-选择新建的.h文件夹(如include)-应用-确定 ———————————————— 版权声明:本文为CSDN博主「鱼包子Ray」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/baopengjian/article/details/105101703

2020-03-26

Dn_lsn_9.zip

动态注册native方法 文件拆分 文件合并 JNI多线程 static int registerNatives(JNIEnv* engv) { LOGI("registerNatives begin"); jclass clazz; clazz = (*engv) -> FindClass(engv, "com/dn/tim/dn_lsn_9/FileUtils"); if (clazz == NULL) { LOGI("clazz is null"); return JNI_FALSE; } if ((*engv) ->RegisterNatives(engv, clazz, gMethods, NELEM(gMethods)) < 0) { LOGI("RegisterNatives error"); return JNI_FALSE; } return JNI_TRUE; } ————————————————

2020-03-22

NDK09_JNI编译过程及AS新建一个JNI项目

https://blog.csdn.net/baopengjian/article/details/104957181 1 新建项目 2 初始化 3 声明一个native 方法,生成.h头文件 4 实现.h定义的方法

2020-03-21

NDK08_JNI访问数组、引用、异常、缓存

一 JNI访问数组 二 访问引用数据类型的数组 三 JNI引用 四 异常 五 缓存 六 缓存策略和弱引用联合使用带来的问题

2020-03-16

lsn07_JNI获取String.zip

https://blog.csdn.net/baopengjian/article/details/104875418 NDK07_JNI读取和返回字符串

2020-03-15

JNI获取Java中类方法、构造函数

JNI获取Java中类方法、构造函数 一 定义native方法,编译生成ray_JniTest.h头文件 二 c中实现,生成 dll文件

2020-03-15

lsn6_1.zip

定义Native方法 生成h文件 class文件中命令行查看方法的签名 c中实现h文件的具体方法,生产dll库

2020-03-14

lsn6_JNI的简单调用

编写native 方法 复制.h 头文件到cpp 工程 实现.h 头文件中的声明函数 生成一个dll 动态库文件 在java中加载动态库

2020-03-14

安装包性能优化.zip

安卓包性能优化,改写apk内的资源名称,修改映射 系统编译完成apk文件以后: 映射关系:res/drawable/ic_launcher.png ----- > 0x7f020000 再做“混淆”:要实现将res/drawable/ic_launcher.png图片改成a.png drawable文件的名字 String文件的名字 layout的名字 比如:R.string.description—>R.string.a res/drawable/ic_launcher.png图片改成a.png

2020-03-01

空空如也

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

TA关注的人

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