Android中JNI入门(三) 之 动态注册Native函数

1 前言 前面两篇文章中,已经对JNI有了一些介绍。现在我们来回顾一下,它主要是通过使用javac -h命令来生成了一个.h的头文件,来产生Java和Native两边方法函的注册关联。这样当Java代码中去执行Native方法的时候,就会通过两边的关联的映射关系来找到这些Native真正实现的地...

2019-03-20 15:52:27

阅读数 95

评论数 0

Android中JNI入门(二) 之 Java与Native相互调用

我们在上一篇文章《Android中JNI入门(一) 之 初识NDK和JNI》中已经通过Demo演示了如何在Java代码中去调用C++代码,今天继续来看看在JNI中是如何反调用Java方法的。先大概提一下,JNI中要调用Java方法的流程是先通过类名找到类,然后再根据方法名找到方法的id,最后就可以...

2019-03-19 18:34:39

阅读数 67

评论数 0

Android中JNI入门(一) 之 初识NDK和JNI

1 NDK NDK全称是Native Develop Kit,翻译作原生开发工具包。它允许你为Android使用C/C++代码来实现应用程序的功能。换言之Android的SDK之外,有一个工具叫NDK,用于进行C/C++的开发。一般情况,是用NDK工具把C/C++编译为.co文件,然后在Java...

2019-03-19 18:34:29

阅读数 96

评论数 4

Andorid性能优化(八) 之 网络请求优化

1 前言 移动互联网蓬勃发展的今天,我们手机上的几乎所有App都是需要联网的。而手机硬件的增强和价格低兼以及运营商流量费用降低和提速,使得用户对网络请求的等待和流量消耗的敏感度也在下降。虽然如此,但对于一个App本身开发上的网络问题也是不能忽视的,例如总有流量不足的情况下、在网络状态不好的场景下...

2019-03-08 00:11:57

阅读数 79

评论数 0

TCP/IP简介和Android中Socket及Http的使用

计算机网络及其协议 概述 OSI/RM 在1978年国际标准化组织(ISO)提出了“开放系统互连参考模型”,即著名的OSI/RM 模型(Open System Interconnection/Reference Model)。此后,不同厂家生产的计算机便能相互通信,建立起了计算机网络。OSI...

2019-03-08 00:04:59

阅读数 130

评论数 3

Andorid性能优化(七) 之 省电开发技巧总结

1 前言 在今天移动互联网蓬勃发展的浪潮下,再好的智能手机也能逃每天一充电的情况。而一款App的好用与否,电量的耗费也是衡量的重要指标之一。今天我们就来一起探索Android中电量的相关知识以及讲讲App进行省电优化的一些开发技巧。 2 获得手机电量信息 在开发过程中,如果想要获得手机的电量...

2019-03-07 23:53:07

阅读数 92

评论数 0

Andorid性能优化(六) 之 启动速度优化

1 App启动方式 App的启动可分为:冷启动、温启动和热启动。其中冷启动是App启动耗时最长的启动情况,今天我们来讲解启动速度的优化也是专门针对冷启动来进行。 1.1 冷启动 当App启动时,后台没有该App对应的进程,比如手机启动后第一次运行App、系统内存吃紧引发App进程被Kill掉...

2019-03-06 17:53:51

阅读数 45

评论数 0

Andorid性能优化(五) 之 ANR总结和分析

1 概述 ANR(Application Not responding)是指应用程序无响应,Android中会在主线程中针对不同的场景监控应用程序的响应时间,如果在超出该场景限定的超时时间还没有将逻辑处理完毕就会造成ANR。一般情况下系统会弹出一个对话框告知用户当前应用程序无响应,用户可以选择继...

2019-01-10 16:17:08

阅读数 86

评论数 0

Andorid性能优化(四) 之 如何给Apk瘦身

1 前言 我们在日常开发过程中,随着版本的迭代、应用模块或功能的增多、老旧代码冗余、各种炫酷效果加入、大分辨率手机对图片的要求、图片不合理使用、滥用第三方库,等原因,应用安装包Apk文件也就逐渐越来越大了。虽然目前手机流量价格已经不像过去几年那么高了且WiFi覆盖环境也越来越多,手机性能和存储空...

2019-01-05 12:02:00

阅读数 100

评论数 0

Andorid性能优化(三) 之 如何定位内存泄漏

1 定位内存泄漏工具 正所谓工欲善其事,必先利其器。定位内存泄漏,可以借助目前比较流行的一些工具来帮助发现和定位问题,下面我们就来看看这些工具。 1.1 Memory Profiler Android Studio 3.0 采用全新的Android Profiler窗口取代Android M...

2019-01-03 12:00:38

阅读数 104

评论数 0

Andorid性能优化(二) 之 内存泄漏场景介绍

1 相关概念 1.1 内存泄漏 内存泄漏是指程序在向系统申请分配内存空间后,也就是说new了对象后,在使用完毕后没有对其进行释放。结果导致一直占据该内存单元。简单的说,在C/C++语言中,如果向堆中分配了内存(new了对象)后,没有对其进行释放掉(没有delete对象),那就是内存泄漏。在Ja...

2019-01-03 11:59:25

阅读数 51

评论数 0

Andorid性能优化(一) 之 如何给App进行内存优化

1 前言 Android系统为每个应用进程都分配一个有封顶的堆内存值,当应用内存占用过高到没有足够的内存来提供给新对象分配并且垃圾回收机制也已经没有空间可回收时就会OOM。当一个应用内存占用过高会使一些性能差的手机系统内存紧缺,使得整体系统卡顿。而且应用内存占用过高后,一旦退到后台后,就会容易被...

2019-01-03 11:42:23

阅读数 82

评论数 0

Android进程回收机制和保活方案

1 Low Memory Killer机制 在Android系统中,进程的生命周期都是由系统来控制的。出于体验和性能上的考虑,即使对一个App进行Home键还是Back键退出的操作,系统并不会真正杀掉该App的进程,它的进程依然存在于内存之中。因为这样在下次要启动这个App时就能更加快速。随着系...

2018-12-19 12:05:06

阅读数 172

评论数 0

Android插件化原理和实践 (八) 之 注意事项

注意事项 关于插件化的三个根本问题和解决方案就已经全部介绍完毕了,前一篇文章也通过一个入门级的工程来完整地演示了。但是其实目前热门的插件化框架也远不止这些内容,我们在实际开发中也远不止这么简单。前面介绍的所有知识点只是一个入门而已,插件化虽然带来了很多便利,但是在开发过程中也增添了不少麻烦和额外...

2018-12-12 13:31:04

阅读数 46

评论数 0

Android插件化原理和实践 (七) 之 项目实践

我们在前面一系列文章中已经介绍完了插件化原理以及三个根本问题的解决方案,本文主要就是作为前面几篇文章的一个总结,通过项目实践将前面的知识点串起来使完成一个入门级简单的插件化工程以及在实际插件化开发中遇到的一些总结。 实践 我们先通过Android Studio创建一个工程,工程中包括了两个Ap...

2018-12-12 13:08:03

阅读数 69

评论数 0

Android插件化原理和实践 (六) 之 四大组件解决方案

在前面的几篇文章中已经介绍完了Android插件化的第一和第二个根本问题,就是宿主和插件的代码互相调用问题和插件中资源的读取问题。现剩下的就是Android插件化里最麻烦的第三个根本问题,也就是在插件中使用四大组件的问题。我们知道,目前插件中的四大组件要想正常使用就必须要在宿主中的AndroidM...

2018-12-10 01:00:18

阅读数 87

评论数 0

Android插件化原理和实践 (五) 之 解决合并资源后资源Id冲突的问题

Android插件化中,要解决资源的问题,有些插件化框架会选择不合并资源,这样就得维护多套mResources变量,这样的话难免开发上没有那么的灵活和方便。所以一般地都是选择合并资源,也就是我们上一遍文章《Android插件化原理和实践 (四) 之 合并插件中的资源》介绍的办法。但是合并后资源id...

2018-12-07 13:25:19

阅读数 719

评论数 0

Android插件化原理和实践 (四) 之 合并插件中的资源

我们继续来学习Android插件化相关知识,还是要围绕着三个根本问题来展开。在前面两章中已经讲解过第一个根本问题:在宿主中如何去加载插件以及调用插件中类和组件代码。Demo中使用了Service来演示,因为还没有解决加载插件中资源的问题,用Activity不好展示。所以本文将要从资源的加载机制讲起...

2018-12-07 12:59:58

阅读数 247

评论数 3

Android插件化原理和实践 (三) 之 加载插件中的组件代码

我们在上一篇文章《Android插件化原理和实践 (二) 之 加载插件中的类代码》中埋下了一个悬念,那就是通过构造一个DexClassLoader对象后使用反射只能反射出普通的类,而不能正常使用四大组件,因为会报出异常。今天我们就来解开这个悬念和提出解决方法。 1 揭开悬念 还记得《Andro...

2018-12-03 23:08:41

阅读数 98

评论数 0

Android插件化原理和实践 (二) 之 加载插件中的类代码

我们在上一篇文章《Android插件化原理和实践 (一)之 插件化简介和基本原理简述》中介绍了插件化一些基本知识和历史,最后还列出了三个根本问题。接下来我们打算围绕着这三个根本问题展开对插件化的学习。首先本章将介绍第一个根本问题:宿主和插件中如何相互调用代码。要实现它们相互调用,就得要宿主先将插件...

2018-12-03 19:16:31

阅读数 97

评论数 0

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