- 博客(458)
- 资源 (14)
- 收藏
- 关注
原创 jni基本操作 2. 操作java中的属性
文章目录jni.h 中定义了 jfieldID获取成员属性对应 jfieldID获取静态属性对应 jfieldID获取jfieldID 对应的属性值设置jfieldID 对应的属性值关于属性描述字符串,用于获取 jfieldIDjni.h 中定义了 jfieldID//java 属性 ID 结构体struct _jfieldID; /* opaq...
2019-04-13 23:27:44 530
原创 jni基本操作 1. java 层创建 native 方法,并生成对应 jni 函数
文章目录创建 java native 方法通过 javah 生成的对应 jni 函数成员方法对应的:静态方法对应的:总结创建 java native 方法即声明 带有 native 关键字的方法package com.stone.ndk.jni;public class JniActivity { public native String helloWorld(); private ...
2019-04-13 23:02:56 1318
原创 jni.h 头文件分析 3. 其它数据结构
文章目录属性ID、方法ID 结构体本地接口中的字段描述符jni 内存管理中的引用类型本地方法结构体JNIEnv 和 JavaVM属性ID、方法ID 结构体//java 属性 ID 结构体struct _jfieldID; /* opaque structure 不透明,即未在本头文件中具体实现 */typedef struct _jfieldI...
2019-04-13 22:26:56 398
原创 jni.h 头文件分析 2. 数据类型定义
文章目录基本数据类型匹配表java 引用类型、数组、字符串 在 c++/c 中的定义c++c类型定义代码基本数据类型匹配表Java类型JNI类型描述booleanjbooleanunsigned 8 bitsbytejbytesigned 8 bitscharjcharunsigned 16 bitsshortjshortsigned ...
2019-04-13 21:29:10 360
原创 C++ 指针引用 *&
文章目录指针引用的作用示例仅一级指针实现二级指针实现指针引用实现指针引用的作用指针引用 *& 可以 替代 二级指针 **;使用时,更简单;可以被重新赋值。示例如下示例,要求在 func( p)中,m_value值和 参数 p 指代的实际内容值相同;且之后 m_value值的改变,会影响 p 的实际内容;仅一级指针实现#include <iostream>...
2019-04-13 17:52:36 8595 3
原创 jni.h 头文件分析 1. 整体的基本介绍 与 常量定义
文章目录获取 jni.h源码内容简介常量定义获取 jni.handorid ndkandroid-ndk-r15c/platforms/android-[v]/arch-arm/usr/include/jni.h发现 sdk/ndk-bundle/platforms 相同目录下没有;可以去官网下载完整的NDKjdkjdk/Contents/Home/include/jni.h ...
2019-04-12 11:57:57 634
原创 Android Studio 打开后一直 "Indexing paused due to batch update"
网上说 删除 .iml 和 .idea 文件夹; 试过后,发现确实有用;不过关闭后,明天又是这个东西出来了。。。后来查到一个AS 菜单: AS > File > Invalidate Caches / Restart试了,果然也可以解决; 感觉这个够官方,明天应该不会再出来了吧。 @_@...
2019-04-12 10:31:42 1097
原创 C语言 获取数组大小,遍历数组
//指针遍历void pp(int * ary, int n) { for(int i = 0; i < n; i++) { *ary += n; printf("%d ", *(ary++)); } printf("\n");}//一般遍历void pp2(int ary[], int n) {// int n = sizeof(ary) / sizeof(int...
2019-04-10 14:50:24 5175 1
原创 Top K 问题的解法:使用快速排序、堆排序思想
什么是 Top K 问题求(随机的)数组中第 n 大的元素?求(随机的)数组中前 n 大的元素, 或者说 最大的 n 个元素?反之求第 n 小的,最小的 n 个元素,都可以说是 Top K 问题以下讨论的求 最大的情况 (即,顺序排序部分,是倒序的)快速排序解快排的思想:每次指定序列中的一个(比如是首位的)值,通过一次快排,返回的索引之前的值就是大于(或等于) 指定值的,之后的就...
2019-03-28 21:33:25 969 5
原创 Android Studio 3.3 配置aspectJ : app-module和library-modlue使用注意,消除javaCompile过时警告
文章目录总结配置root/build.gradlemodule/build.gradledependencies总结在 app 中的配置与 library 中的配置是有点点不一样的。app中用applicationVariants library中用 libraryVariants在哪个 module 中进行aop 操作,就需要在那个 module 中进行配置。不同的 module 无法...
2019-03-28 20:52:52 1403 3
原创 Android Jetpack-ViewModel、LiveData 使用注意事项
ViewModel维持对象在给定组件(Fragment/Actiivity)的生命周期范围中, 直到组件 destroy 时,才销毁 ViewModel 实例。内部可以声明创建 LiveData的实例变量。LiveData 是一个可观察内部数据变化的对象。可以简单使用其实现类 MutableLiveData。内部有方法:postValue 可以从异步线程中,将数据设置 data 中...
2019-03-28 20:26:05 1352
原创 Java 实现冒泡排序及优化
//最差的冒泡 public void sort1(int[] ary) { long startTime = System.nanoTime(); for (int i = 0, len = ary.length; i < len; i++) { for (int j = 1; j < len; j++) { ...
2019-03-23 23:07:47 569
原创 Java 实现双向且双端的链表,使用dummyHead、dummyTail、index
文章目录思路实现测试思路双向链表:next、prev 双向节点指针;使用 head、tail 表示双端;使用虚拟头、尾结点,方便循环遍历;使用 index,向用户提供类似数组一样的增、删、查(能查就能改,改没考虑);内部维护一个 size变量,表示实际节点的数量(不算虚拟头和尾);由 size、index,可以确定增、删、查是要从头还是从尾遍历实现://最近的节点: true 靠近...
2018-12-29 13:56:12 1262
原创 LeetCode No.203 删除链表中等于给定值 val 的所有节点 (Java)
问题:删除链表中等于给定值 val 的所有节点。示例:输入: 1-&amp;amp;amp;amp;amp;amp;amp;gt;2-&amp;amp;amp;amp;amp;amp;amp;gt;6-&amp;amp;amp;amp;amp;amp;amp;gt;3-&amp;amp;amp;amp;amp;amp;amp;gt;4-&amp;amp;amp;amp;amp;amp;amp;gt;5-&
2018-12-26 10:35:35 464
原创 Android 使用Google Protocol buffer协议
文章目录什么是 Protocol buffer参考下载定义.proto 文件message 内部定义option 选项转成 java 文件转换后,java 类中的常量用方法android 使用 gradle 插件实现 protocol buffer lite什么是 Protocol buffer它是用于对结构化数据进行序列化的一种灵活、高效、自动化的机制——类似XML,但是更小、更快、更简单。...
2018-11-16 12:05:47 1382
原创 Android 使用RenderScript
文章目录参考gradle 配置使用java 代码进行图像模糊使用rs 脚本进行图像颜色反转参考官方文档gradle 配置build.gradle:android { defaultConfig { //renderscript 兼容配置; renderscriptTargetApi 14 renderscriptSupportModeEnable...
2018-11-15 14:20:39 2287 3
原创 Dagger2 分析与示例
文章目录Dagger2基本描述示例简单的流程实例注入时 @Inject用法Demo Package Infopackage injectpackage modulepackage parameterpackage namedpackage scopepackage dependenciespackage subcomponentDagger2Dagger2是Android中比较热门的依赖注入...
2018-11-04 12:23:34 307
原创 Android Studio 新版本沿用旧版配置
在装新版AS时, 有如下对话框: 通常选第一项,沿用前一版的设置。 但前一版的选择,可能有问题。由上图知,AS 的配置文件在, ~/Library/Preferences/ 目录下。 进入到目录中,发现如图: 发现有很多旧版的配置,现在不需要了,就删掉它们。 保留现在正用使用的版本配置。 如我只想保留3.1版的配置,那么把其它都删除了; 然后在打开新版3.2Previe...
2018-07-21 12:57:58 2043
原创 Android Context到Activity间的关系及部分源码分析
Context这是关于一个应用程序环境的全局信息接口。它是一个抽象类。它允许访问应用程序的资源和类,以及应用程序级别的操作返回值,如启动 Activity、BroadcastReceiver、Service 及接收 Intent等。定义了一些常量,主要以 MODE_ 前缀和 BIND_ 前缀开头; MODE_ 用于文件操作模式,分为三类: - 用于SharedPreferen...
2018-07-04 16:50:56 550
原创 Android NDK 17 和 CMake 问题集锦
NDK 17 不再支持 ABI: armeabi 这,难道Android9的设备,就不能运行仅包含 armeabi的 apk了? 暂不知 编译时,若一定要包含armeabi,则要用低于17版本的 NDKCMake配置 c++11android { defaultConfig { ... externalNativeBuild {...
2018-05-15 15:26:36 4242
原创 有序数列中,平衡选取一定数量的数
标题,不太好取… 其实就是选择的间隔step满足 总的数量/要选择的数量实际业务场景是:要求在超过150张图片中,平衡的选取150张图片,用于合成视频。为此写了以下 code :import java.util.Arrays;import java.math.*;class Untitled { public static void main(String[] args) ...
2018-05-10 18:08:34 338
原创 Android maven仓库
Repository: google()Repository: maven-aliyunRepository: google()在Android Studio 中的 项目根目录下,build.gradle: allprojects { repositories { jcenter() google() }}其中go...
2018-05-10 17:57:50 1938
原创 关于Android-Studio3.0中的Gradle配置
AS3.0 新特性Gradle 变化gradle.properties/build.gradleAS3.0 新特性看官方的版本发布说明,就能知道大概了: https://developer.android.google.cn/studio/releases/index.html如:对java8的一些feature的支持; profiler debug;...
2018-05-10 17:46:34 657
原创 Android 中的高效数据结构
前言SparseArray系列ArrayMap系列如何选择使用前言Android 提供了一些对于HashMap进行优化的数据结构SparseArray系列SparseArray(api 1) 替代map, [int, Object]SparseArrayCompat(v4) 替代map, [int, Object]SparseIntArray(...
2018-05-10 17:43:23 726
原创 Android 协议跳转app
协议跳转使app作为给定链接的默认处理者使用命令验证绑定情况代码中应用Android Studio 3.0中操作App Links协议跳转当我们在应用中点击一个协议链接,通常会提示我们选择合适的浏览器或者app去打开它。<activity android:name=".MainActivity"> <intent-filter>...
2018-05-10 17:07:05 1563
原创 C语言中的void和void指针-void*
void 关键字void指针的作用使用方式void指针与函数void 关键字当函数返回值为空时,可以使用void。void empty(int a);当函数参数列表为空时,可以使用void。void empty(void);void指针的作用void指针:void *可以用其指代任何类型的指针。但不能用void指针...
2018-05-10 16:55:59 4520 1
原创 C语言中的共用体
共用体(union)定义使用方式使用注意点:共用体(union)进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体。 也叫 联合体。共用体变量的地址和它的各成员的地址都是同一地址。其所占内存,与占用内存最大的成...
2018-05-10 16:51:15 1580
原创 Mac OSX 编译 FFmpeg3.4.2 for Android
下载FFmpeg &amp; NDKhttp://ffmpeg.org/download.html 下载 ffmpeg-3.4.2.tar.bz2 http://www.androiddevtools.cn 下载ndk-15c下载好,解压 note: 试过ndk-15b和ndk-16b,都编译失败了,报各种 .h(如stdlib.h, errno.h)头文件找不到,其实是有...
2018-03-19 17:40:40 728 1
原创 Android issue: adb install … 发生异常 [INSTALL_FAILED_TEST_ONLY: installPackageLI
apk不能用build目录运行时生成的, 需要使用 gradle打包命令生成的apk文件。注意检查gradle的版本,不能是alpha等非release版本注意检测manifest.xml , <application android:testOnly="true" …/>上面的 true 要改成false, 或 直接去掉 testOnley配置
2017-11-11 12:00:20 4422
原创 有趣的位运算
位运算位运算,即是 操作二进制的bit(位),来进行运算。其分类有:按位与(&amp;),按位或(|),按位异或(^),按位取反(~),按位左移(&lt;&lt;),按位右移(&gt;&gt;)java中还有 “无符号右移” (&gt;&gt;&gt;);
2017-10-23 16:23:38 677
原创 Android oncreate(Bundle savedInstanceState, PersistableBundle persistentState)作用
Activity的三个方法:onCreate 创建ActivityonSaveInstanceState 由系统销毁Activity(可能内存不足,屏幕改变且未做处理导致异常等原因),而触发onRestoreInstanceState 由系统恢复Activity在api21之后,以上三个方法都出了一个带有参数类型为PersistableBundle的重载方法。PersistableBundl
2017-09-19 23:38:06 1334
原创 两角和差公式
两角和(差)公式包括两角和差的正弦公式、两角和差的余弦公式、两角和差的正切公式。两角和与差的公式是三角函数恒等变换的基础,其他三角函数公式都是在此公式基础上变形得到的。
2017-09-07 17:08:10 2663
原创 Android studio issue: Didn't find class "..." on path:DexPathList
原来在Android studio编译安装的时候,如果系统版本为5.0(api21)以上,并且启用了studio的Instant Run 特性后,Instant Run在编译debug版本时就会起作用,做一些dex的优化,发现编译出的debug-apk比不启用Instant Run特性编译出的apk文件要小。这时通过studio来运行debug-apk,没有问题,但将该debug-apk用命令行等其
2017-08-28 15:29:41 1570
原创 Android gradle issue: WARNING [Project: :app] shrinkResources does not yet work with useJack=true
问题:WARNING [Project: :app] shrinkResources does not yet work with useJack=true …在studio 2.3.3中,我为了使用lambda特性,配置了jackOptions { enabled true}同时在buildType下使用了shrinkResources,就引发了这个错误,造成gradle编译失败。解决办法
2017-08-17 14:16:22 682
原创 Android issue: You need to use a Theme.AppCompat theme (or descendant) with this activity
报这个错一看就是要你使用:Theme.AppCompat theme前提要有v7包:com.android.support:appcompat-v7 当然v4最好也有:com.android.support:support-v4Activity可以直接使用<application/>定义的theme;也可以在<activity/>中加入 android:theme="…" 来指定主题。比较坑的是,
2017-08-16 10:36:45 491
原创 Kotlin Reference (十六) 函数和lambda表达式:内联函数、内联属性,inline noinline crossinline reified
内联函数:在调用该函数的地方,直接展开该函数。非内联函数:在调用该函数的地方,将当前的环境参数压栈;再通过函数的内存地址,去访问它;当执行完成后,再出栈,回到原来的执行代码中,继续执行。Java中没有明确的关键字,来手动实现内联函数。 是在运行时,通过JVM自动实现的。内联的优点:省去切换访问地址,带来的时间开销内联的缺点:会带来代码膨胀,增加了空间开销
2017-07-29 17:23:05 1026
原创 Kotlin Reference (十五) 函数和lambda表达式:普通函数和高阶函数
Kotlin中的函数,必须以`fun`关键字来定义;函数参数,必须声明类型,以`:`来分隔。一个函数声明中,将另一个函数作为参数或返回值,这样的函数就是高阶函数(Higher-Order Functions)。
2017-07-28 12:54:51 797
原创 Android Region范围、RegionIterator
Regionandroid.graphics.Region, 由0个或多个矩形 Rect组成 早前多用于 裁剪,即canvas.clipRegion(),后被标记为过时,推荐使用canvas.clipPath()来完成裁剪功能。 裁剪出来的图层是独立的,如果后续没有对图层做其它处理,则后续绘制将直接作用在裁剪出的图层区域中Region还有个比较好的用处就是:Android 判断点是否在Pat
2017-07-25 21:47:58 1571
原创 Android MaskFilter: BlurMaskFilter、EmbossMaskFilter
MaskFilter是一个基类对象,为Paint分配alpha通道的mask效果。 它的子类实现有:BlurMaskFilter、EmbossMaskFilter 主要被使用在Paint中:paint.setMaskFilter(maskFilter) BlurMaskFilter主要用于掩饰(mask)和模糊(blur) Paint所作用的对象上
2017-07-25 15:39:17 2110
C语言常用函数速查手册.pdf
2017-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人