android_jni_study_2

title : JNI 初探—-C与C++开发
tag:[android]
category:android


JNI 初探----基本数据类型和开发配置

导读

Java Nativie Interface(JNI,中文名称Java本地接口)标准时Java平台的一部分,它允许Java代码和其他语言写得代码进行交互。JNI是本地编程接口,它使得Java虚拟机(VM)内部运行的Java代码能够用其他编程语言(如C、C++和汇编语言)编写的应用程序和库进行交互操作。JNI的主要用途是为了对硬件进行访问以及追求高效率或可重用C/C++库。

对Java接口回调的一些内存泄漏优化的想法

在日常开发中,对于异步的访问,JAVA端都习惯通过Interface来构建回调通知,而在线程处理方面,Interface的回调一般都会与回调需要处理的API在相同线程,一般为UI线程,但回调需要调用宿主的相关API处理,这就需要调用宿主的引用,如果回调的Interface还在调用的队列里面没有用到,但宿主已经结束使命,准备回收,Interface由于内含宿主的应用,就比较容易导致内存泄漏,例子如下:

react-native 优化

1、优化Component

很多人在定义一个class时都会去继承Component,这并没有错,但是如果一个子组建也继承了Component,那么当父组建render时也会导致子组建的render,怎么解决呢?其实很简单只需要我们的子组建去继承PureComponent即可。个人建议自定义的class都可以去继承PureComponent从而避免不必要的render。

android tinker热更与AndResGuard混淆适配

导读 随着项目越来越大,APK的包也越来越大,前几天对APK进行减包处理,其中有一个资源混淆的减包手段,作用有两点:一是通过混淆资源ID长度同时利用7z深度压缩,减小了apk包大小;二是混淆后在安全性方面有一点提升,提高了逆向破解难度。但项目原来引进了Tinker热更新,这样就存在以下两个问题:

android layoutinflater里面setFactory的探索

LayoutInflater用的最多的就是其inflate()方法了,但还有两个方法十分重要和有用:
1、setFactory
2、setFactory2

这两个方法的功能基本是一致的,setFactory2是在SDK>=11以后引入的,所以我们要根据SDK的版本去选择调用上述方法。

值得高兴的是,v4包下有个类LayoutInflaterCompat帮我们完成了兼容性的操作,提供的方法为:

1
2
3
LayoutInflaterCompat
- setFactory(LayoutInflater inflater,
LayoutInflaterFactory factory)

(转)Hunting Your Leaks, Memory Management in Android

原文地址:https://www.raizlabs.com/dev/2014/03/wrangling-dalvik-memory-management-in-android-part-1-of-2/
https://www.raizlabs.com/dev/2014/04/hunting-your-leaks-memory-management-in-android-part-2-of-2/

There are some people who believe this myth that you don’t need to worry about managing memory while writing Android applications. It’s a self-contained Java environment, right? What’s the worst that could happen?

Rxjava源码学习

ReactiveX是Reactive Extensions的缩写,一般简写为Rx,最初是LINQ的一个扩展,由微软的架构师Erik Meijer领导的团队开发,在2012年11月开源,Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异步数据流,Rx库支持.NET、JavaScript和C++,

java Reference 学习

在 jdk 1.2 及其以后,引入了强引用、软引用、弱引用、虚引用这四个概念。网上很多关于这四个概念的解释,但大多是概念性的泛泛而谈,今天我结合着代码分析了一下,首先我们先来看定义与大概解释(引用类型在包 java.lang.ref 里)。

,