Android开发实践:检测App的内存占用和泄漏
前段时间开发的Android应用,每次都是在运行了半个小时左右后突然挂掉了,很是莫名其妙,也不知道哪里出了问题,后来一步步排查,发现问题出在JNI层,一个被频繁调用的函数分配的内存忘记释放,导致内存泄漏。 这次问题使我明白,别以为Android程序是基于Java语言,有强大的垃圾回收机制,就完全不用担心内存问题,其实Android程序也要特别小心你的内存,因为毕竟手机不比PC机,内存是极其有限.....
Android开发实践:用脚本编译Android工程
一般情况下,我们都是使用Eclipse+ADT插件或者Android studio软件来编译Android工程的,其实,Eclipse或者Android studio仅仅是将一些编译命令封装到可视化界面里而已,通过shell脚本、ADT附带的一些命令以及Ant工具,我们完全可以将Android工程的编译过程自动化,直接通过运行脚本就得到最终的APK文件。 &n...
Android开发实践:WIFI连接功能的封装
与WIFI扫描类似,WIFI的连接同样是一个耗时的过程,所以需要放到线程中执行,通过回调来通知调用者连接结果。该回调接口的定义如下: 1 2 3 public interface WifiConnectListener { public void OnWifiConnectCompleted(&nbs...
Android开发实践:WIFI扫描功能的封装
网上关于Android WIFI模块开发的博文已经很多,这里我也想给出我对WIFI模块编程的一些消化结果,将Android的一些API封装类,方便在各个Android APP中复用,简化程序的开发。 本文先给出一个扫描WIFI功能的封装成类,创建该类对象后,当你简单地调用search()函数后,后台会自动扫描当前的WIFI SSID,并以回调的形...
Android开发实践:利用ProGuard进行代码混淆
由于Android的代码大都是Java代码,所以挺容易被反编译的,好在Android ADT为我们集成了混淆代码的工具,一来可以混淆我们的代码,让程序被反编译后基本看不懂,另外还能起到代码优化的作用。发布项目前,建议打开Android的代码混淆功能。 Android ADT主要通过ProGuard工具来提供代码混淆,网上也有挺多博客文章讲这个的,但感觉很多都介绍得太过于复杂,这里我就以问答的方.....
Android开发实践:在任意目录执行NDK编译
本文暂时不讲述如何用NDK编译第三方开源代码库,而是先以简单的例子讲述如何在任意目录把自己写的C代码编译成Android可使用的静态库/动态库。 1. 准备环境 首先,你得安装了Android的NDK编译工具,假设你的NDK的根目录在 /opt/android/ndk . 当然,最好你能在环境变量里配置一下路径,否则使用ndk-build命令的时候,都得加上路径的前缀了。 修改 ~/.b...
Android开发实践:自定义ViewGroup的onLayout()分析
Android开发中,对于自定义View,分为两种,一种是自定义控件(继承View类),另一种是自定义布局容器(继承ViewGroup)。如果是自定义控件,则一般需要重载两个方法,一个是onMeasure(),用来测量控件尺寸,另一个是onDraw(),用来绘制控件的UI。而自定义布局容器,则一般需要实现/重载三个方法,一个是onMeasure(),也是用来测量尺寸;一个是onLayout(),....

Android开发实践:为什么要继承onMeasure()
首先,我们写一个自定义View,直接调用系统默认的onMeasure函数,看看会是怎样的现象: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 package com.titcktick.customview; import android.content.Context; import ...

Android开发实践:使用Service还是Thread
Service是Android的四大组件之一,被用来执行长时间的后台任务,同样,线程也可以实现在后台执行任务,它们的区别在哪呢?何时使用Service何时使用Thread呢?今天我也来说说我的理解和总结。 首先,需要了解Service的几个特点。 (1) 默认情况下,Service其实是运行在主线程中的,如果需要执行复杂耗时的操作,必须在Service中再创建一个Thread来执行任务。 ...
Android开发实践:多线程编程小结
我们知道,Android系统为了提高程序的实时响应能力,不允许在UI线程中进行耗时的操作,否则会出现ANR异常,因此必须将耗时的任务放到非UI线程中执行。Android/Java提供了很多类来帮助大家完成异步操作,比如:Thread类,Timer类,AsyncTask类,HandlerThread类,以及Executor接口。这些类都分别在什么场合下使用呢? 本文简单地总结一下Android开.....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
Android更多开发相关
- 安卓Android开发伊凡
- 安卓Android开发
- Android jetpack开发
- kotlin Android开发
- Android开发无线
- 技术Android开发
- 工具Android开发
- 下载Android开发
- app Android开发
- Android ios开发
- Android开发课程
- Android开发文件
- Android开发差异
- Android开发项目
- Android开发平台
- Android ui开发
- Android开发入门
- Android开发自定义
- Android开发技术
- Android开发方法
- 开发Android应用
- Android开发解析
- Android开发app
- Android开发数据
- Android开发控件
- Android开发配置
- Android开发库
- Android开发图片
- Android开发设置
- Android开发线程
Android您可能感兴趣
- Android软件
- Android IMEI
- Android root
- Android伊凡
- Android草卓
- Android android
- Android解析
- Android Jetpack
- Android Kotlin
- Android开发者
- Android应用
- Android Studio
- Android实现
- Android app
- Android报错
- Android系统
- Android iOS
- Android文件
- Android SDK
- Android手机
- Android自定义
- Android图片
- Android分析
- Android Activity
- Android项目
- Android数据
- Android源码
- Android平台
- Android方法
- Android java
mPaaS 移动开发平台
mPaaS 源于蚂蚁集团金融科技,为 App 开发、测试、运营及运维提供云到端的一站式解决方案,致力于提供高效、灵活、稳定的移动研发、管理平台。 官网地址:https://www.aliyun.com/product/mobilepaas/mpaas
+关注