Android技术开发
文章平均质量分 67
主要分享android源码开发以及高级进阶
行书开发
菜鸟开发
展开
-
Android Device Monitor结构和用法
Android Device Monitor是一个独立的工具,可以对Android应用进行调试和分析。Android Device Monitor无需安装整合在一个IDE中,比如像Android Studio,提供如下工具: 1、 DDMS 2、 Tracer for OpenGL ES 3、 Hierarchy Viewer 4、 Systrace 5、 Traceview 6、 P原创 2018-02-07 16:52:51 · 8424 阅读 · 2 评论 -
Intent中的四个重要属性——Action、Data、Category、Extras
在Java代码中或AndroidMainfest.xml中我们会设置Activity添加属性时,为使用Intent(或IntentFilter).Intent中的四个重要属性——Action、Data、Category、ExtrasIntent是联系Activity,Service,Broadcast之间的纽带,其作用并不仅是简单的数据传递。通过自带的属性,可以方便的完成很多较为复杂的操作。列如直接转载 2017-08-13 14:29:17 · 3523 阅读 · 0 评论 -
Android中获取应用程序(包)的信息----------PackageManager的使用一
如何获取Android系统中应用程序的信息,主要包括packagename,label,icon,占用大小等。具体分为两部分:1:获取应用程序的packagename,label,icon等; 2:获取应用程序的占用大小,包括:缓存大小(cachsize),数据大小(datasize)。开发Launcher时,会更多的使用,Android系统为我们提供了很多服务管理的类,如ActivityMana原创 2017-07-24 12:43:15 · 1620 阅读 · 0 评论 -
Android应用层制作LED指示灯
在Java应用层修改LED指示灯的颜色,这个花了我半天时间, 才实现该功能!public class LEDActivity extends Activity implements View.OnClickListener {private static final String TAG = "LED";Button mLedTest;int mLedStatus = 0;private f原创 2017-06-25 22:04:42 · 3670 阅读 · 0 评论 -
Fragment的数据交互 一 使用Handler
介绍使用Handler来实现Fragment与Activity 的交互。第一步,我们需要在Activity中定义一个方法用来设置Handler对象。 public void setHandler(Handler handler) { mHandler = handler; }第二步,在Fragment中的回调函数onAttach()中得到Fragment所在Activity,并调用setHan原创 2016-08-28 18:05:15 · 5206 阅读 · 0 评论 -
Ubuntu 关于gcc/g++版本更换以及编译问题
我在编译android时,出现了以下问题:ERROR: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin/x86_64-linux-ar only run on 64-bit linuxmake: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/li原创 2017-03-22 16:12:20 · 3167 阅读 · 0 评论 -
android getevent用法
最近在测试设备按键的常用命令,感觉这些命令都有的,但就是不知道怎么查找。翻阅了几篇博文,才发现有一个getevent,就是指这样的命令.首先需要说明的是getevent命令后面可以带上具体的input设备,列如getevent /dev/iput/event0,这样可以过滤掉一些不用显示的input的设备.我在之前的使用中,还是有些找不到点子,也是一步一步使用起来的。首先看-p 选项, -p选项用原创 2017-05-29 10:12:13 · 7053 阅读 · 3 评论 -
Android Studio导入项目非常慢的解决问题
Android Studio比Eclipse ADT有巨大的优势。 Android Studio原生支持使用Gradle来构建项目,使用动态语言Groovy定义项目构建的过程,避免了build.xml文件繁琐的定义。Android Studio在升级的时候,可能会伴随着Gradle版本的升级,Gradle就会产生若干的版本。为了保证程序不会因为Gradle版本不同导致问题,又产生了Gradle W原创 2016-09-05 19:26:06 · 2271 阅读 · 2 评论 -
android frameworks 源码介绍
最近一直在研究frameworks层,这里有很多关于应用层控件,机制,线程,消息,进程等等实现的原理。下载源码目录:这就是frameworks,的源码目录。android系统层次如下:项目目录简单分析如下:这就是最基本的frameworks的目录,当然还有很多源码我没介绍呢?。。。。。Framework简单记录完毕后将逐步了解Android各个部分,大致分为: Graphics 原理、View 原原创 2016-09-18 19:33:29 · 2967 阅读 · 3 评论 -
Android 设计模式之单例模式
设计模式是前人留下来的一些经验总结而已,然后把这些经验起了个名字叫Design Pattern,翻译过来就是设计模式的意思,通过使用设计模式可以让我们的代码复用性更高,可维护性更高,让你的代码写的更优雅。Android中用到单例模式是最常见的一种模式了,这里我就简单介绍一下几种单例模式:饿汉式:「饿汉式」是最简单的实现方式,这种实现方式适合那些在初始化时就要用到单例的情况,这种方式简单粗暴,如果单例原创 2016-09-29 14:01:23 · 1537 阅读 · 4 评论 -
Android Studio导入项目出现UnsupportedMethodException
这个问题是android studio项目很常见的一个错误问题,我这里是因为导入项目发生的错误,因此我的解决问题方法如下:分析原因,可以看到是Gradle出现的问题,因此我在android studio中查找问题的步骤:或者也可以在File – Project Structure中解决分析问题,看到Gradle version是, 因此修改.点击确定,问题解决! 然后就可以看到运行在手机上的项目.原创 2016-10-11 12:04:33 · 1658 阅读 · 5 评论 -
Android Studio如何配置JNI环境
android studio配置JNI,有好几种方式,我这里就介绍一种:这里我直接用图介绍下:1: 先配置ndk环境2: 编译生成 .class 文件,在工程的app/build/intermediates下就会生成classes文件夹,打开classes目录下的debug目录就会看到以你的包名命名的各级文件夹,最里边文件夹下有你的Java类对应的.class文件;3:在as 自带的Termina原创 2016-11-04 17:07:57 · 1213 阅读 · 0 评论 -
Android Studio 正常运行apk出现debug模式
调试代码成功后,我运行apk,不料出现debug模式,一直出现,我还以为我一直点击的debug模式,仔细查看,这是一个错误的问题,我试着解决了半天,终于明白什么问题了。用图介绍这样的问题:运行后事:出现这样的问题,不要慌,这不是代码的问题,而是软件环境的问题,在手机的开发者选项中,关闭开发者选项,重启开发者选项,至此,这类问题解决!原创 2016-11-07 23:10:43 · 4991 阅读 · 0 评论 -
Android Studio如何配置adb以及常用命令
用Android Studio一年多了,都没有使用其调试adb,今天就分享adb配置的方法,分享给大家.直接打开电脑-属性-高级配置-环境变量。这里我用图示范给大家: 这样常用adb就配置成功。紧接着还有平时常用的adb命令,我简单的写几个给大家:显示当前运行的全部模拟器:adb devices安装应用程序: adb install -r 应用程序.apk获取模拟器中的文件: adb pu原创 2016-11-23 23:43:57 · 33064 阅读 · 1 评论 -
Android 的系统架构
Android由于其开源型广,得到很多厂商的支持,软件发展性快等优点,因此吸引了一大批的开发者学习android,这里我就介绍一下android平台架构。Android是一种基于Liunx开放源代码软件栈,为广泛的设备和机型而创建。下图为Android平台的组建视图:Android 软件栈Liunx内核:Android平台的基础是Liunx内核。列如:Android Runtime(ART)依靠Li原创 2016-11-28 12:33:19 · 1215 阅读 · 0 评论 -
Android Handler机制
面试题:解释一下Android中Handler,Message,Looper之间的关系? android提供了Handler和Looper来满足线程间的通信。Handler是先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(Message Exchange). 1 Looper:一个线程可以产生一个Looper对象,由它来管理此线程的Message Queue(消息原创 2016-12-06 23:44:16 · 2152 阅读 · 0 评论 -
Android 基础知识详解
1:Activity与Fragment的生命周期。Activity的生命周期: Fragment的生命周期:对比图:测试代码: import android.app.Activity; import android.app.ListFragment; import android.os.Bundle; import android.util.Log; import andro原创 2016-12-13 13:45:47 · 1187 阅读 · 0 评论 -
android的m、mm、mmm编译命令的使用
android源码目录下的build/envsetup.sh文件,描述编译的命令m: Makes from the top of the tree. mm: Builds all of the modules in the current directory. mmm: Builds all of the modules in the supplied direc原创 2016-12-26 14:52:27 · 2293 阅读 · 1 评论 -
Android package属性、package name和Application ID三者的联系及区别
名词解释1 package属性:在AndroidMainfest.xml文件中.2 package name: 模块结构的包名.3 Application ID: 模块defaultConfig块下的applicationId属性.设置Application ID每个Android应用程序都有唯一一个类似Java包名的Application ID,比如com.example.myapp。在Andro原创 2016-12-29 19:49:07 · 2897 阅读 · 0 评论 -
Android Http通信
Android 当中涉及到网络编程的部分经常会用到http通信,同时android也为我么您提供了HttpUrlConnection接口和HttpClient接口,大大的方便了开发。Http通信又分为两种方式:get和post,get可以uoqu静态页面,传入参数可以放在url当中,而post方法的传入参数则是放在httprequest(请求)当中。前面提到的HttpUrlConnection接口是原创 2017-02-16 10:31:32 · 1111 阅读 · 2 评论 -
Android之SDK、NDK、JNI和so文件
Android SDK(AndroidSoftware Development Kit),即Android软件开发工具包,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”,也就是说我们还可以采用C/C++语言。Android SDK主要包括开发文档、编译工具等等,其主要目录如下:(1)原创 2017-02-24 14:27:57 · 1183 阅读 · 0 评论 -
Android monkey的基本命令使用说明
Android MonkeyTestMonkey测试是Android自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey用随机重复的方法去负荷测试你开发的软件.最简单的方法就是用用下转载 2017-02-27 16:31:25 · 3620 阅读 · 3 评论 -
Android编译系统环境初始化过程分析
Android源代码在编译之前,要先对编译环境进行初始化,其中最主要就是指定编译的类型和目标设备的型号。Android的编译类型主要有eng、userdebug和user三种,而支持的目标设备型号则是不确定的,它们由当前的源码配置情况所决定。为了确定源码支持的所有目标设备型号,Android编译系统在初始化的过程中,需要在特定的目录中加载特定的配置文件。接下来本文就对上述的初始化过程进行详细分析。对原创 2017-02-28 13:25:41 · 1275 阅读 · 2 评论 -
Android源代码编译命令m/mm/mmm/make分析
在前文中,我们分析了Android编译环境的初始化过程。Android编译环境初始化完成后,我们就可以用m/mm/mmm/make命令编译源代码了。当然,这要求每一个模块都有一个Android.mk文件。Android.mk实际上是一个Makefile脚本,用来描述模块编译信息。Android编译系统通过整合Android.mk文件完成编译过程。本文就对Android源代码的编译过程进行详细分析。从原创 2017-02-28 13:39:26 · 2264 阅读 · 0 评论 -
Android编译系统简要介绍和学习计划
在Android源码环境中,我们开发好一个模块后,再写一个Android.mk文件,就可通过m/mm/mmm/make等命令进行编译。此外,通过make命令还可制作各种系统镜像文件,例如system.img、boot.img和recovery.img等。这一切都得益于Android编译系统,它为我们处理了各种依赖关系,以及提供各种有用工具。本文对Android编译系统进行简单介绍以及制定学习计划。在原创 2017-02-28 13:50:30 · 1125 阅读 · 0 评论 -
最全的Android源码目录结构详解
Android 2.1 |– Makefile |– bionic (bionic C库) |– bootable (启动引导相关代码) |– build (存放系统编译规则及generic等基础开发包配置) |– cts原创 2017-03-02 17:43:35 · 2493 阅读 · 1 评论 -
Android性能优化解决方案
Android开发做久了,你会发现很多APP出现内存泄漏,卡顿,加载迟缓等问题,这时你会细细体味出这样的APP其实很一般,这说明我们也走向深度开发中,技术实力也提高了很大一部分,以下是我常见的一些内存泄漏问题以及优化方案.一,内存泄漏内存泄漏是指由于代码编写不当导致不再使用的对象无法得到及时释放。内存泄漏产生的内存垃圾不仅浪费资源,拖慢运行效率,甚至还可能造成内存溢出,直接导致应用崩溃。对于Andr转载 2017-03-13 12:16:09 · 1491 阅读 · 0 评论 -
JAVA虚拟机、Dalvik虚拟机和ART虚拟机简要对比
1、什么是JVM?JVM本质上就是一个软件,是计算机硬件的一层软件抽象,在这之上才能够运行Java程序,JAVA在编译后会生成类似于汇编语言的JVM字节码,与C语言编译后产生的汇编语言不同的是,C编译成的汇编语言会直接在硬件上跑,但JAVA编译后生成的字节码是在JVM上跑,需要由JVM把字节码翻译成机器指令,才能使JAVA程序跑起来。 JVM运行在操作系统上,屏蔽了底层实现的差异,从而有了JAVA转载 2017-03-16 21:05:31 · 1156 阅读 · 0 评论 -
AsyncTask原理及不足
一:为什么需要工作者线程Android应用的主线程(UI线程)肩负着绘制用户界面和及时响应用户操作的重任,为了避免”ANR”,就要确保主线程时刻保持较高的响应性.为了做到这一点,我们就要把耗时的任务移出主线程,那么耗时的任务交给谁来完成呢?答案就是工作者线程。Android开发中我们通常让主线程负责前台用户界面的绘制以及响应用户的操作,让工作者线程在后台执行一些比较耗时的任务。Android中的工作转载 2017-03-24 14:48:58 · 21567 阅读 · 1 评论 -
Android6.1 开关机动画和Logo制作与修改
最近在修改一些应用层的动画与Logo的框架?这里揭开android开机动画的神秘面纱。1、制作开关机动画 1.1 开机动画的位置system/media/bootanimation.zip,要修改开机动画就是修改bootanimation这个压缩文件。如果不存在该压缩包,使用原生自带的资源,其路径在system/framework/framework-res.apk/assets/images(A转载 2017-04-01 13:14:17 · 3794 阅读 · 4 评论 -
Android Preference详解之初识Preference及Preference系(一)
一种构建UI的方式——通过Preference去构建UI,而不是直接通过layout方式(或许说得不够准确,因为Preference系也是间接通过Activity去展示的,只不过对于很多新人来说这种方式会和普通的有点不一样),android4.4以来,修改了很多Preference属性,学习Preference框架,就从这节开始.一 Preference家族概述如下图所示Preference作为转载 2017-04-16 12:51:31 · 5937 阅读 · 0 评论 -
Android——Preference详解之Preference系的基本应用和管理(二)
第一篇我描述了Preference的构成和基本知识,相信对于Preference有了一定的认识,这篇文章就是我们总结下Preference,PreferenceActivity、PreferenceGroup、RingtonePreference的普通应用和管理,还有通过一些测试来验证一些机制和原理。一 PreferenceActivity1、PreferenceActivity概述Preferen转载 2017-04-16 13:33:02 · 2237 阅读 · 0 评论 -
Android—Preference详解之Preference系的基本应用(三)
这篇文章我会系统的提供底层Preference的使用CheckBox选择项CheckBoxPreference、EditText编辑对话框EditTextPreference、列表选择ListPreference、多项选择MultiSelectListPreference、 开关选择SwitchPreference的应用和管理。一、Preference系树形结构图首先还是再来回顾下Preferenc转载 2017-04-16 13:52:57 · 4245 阅读 · 1 评论 -
Android—启动内置APK和动态发送接收自定义广播
工作中遇到这样一个需求,需要为按键添加一个亲情号,提供一个接口启动内置的APK,思考再三决定更改Framework,利用广播机制去实现。一、代码动态自主启动内置APK我们都知道Android系统为我们提供了很多服务管理类,PackageManager主要是管理应用程序包,通过它就可以获取应用程序信息并构建Intent,启动对应的应用。除此之外Android还未我们提供了一些对应的类来管理相关的xml转载 2017-04-16 14:43:38 · 1826 阅读 · 0 评论 -
android技术之SQLite技术详解
android和ios的数据库都是用SQLite来实现.一,SQLite数据库简介:轻量级:SQLite数据库是一个轻量级的数据库,适用于少量数据的CURD;文件本质:SQLite数据库支持大部分SQL语法,允许使用SQL语句操作数据库,其本质是一个文件,不需要安装启动。数据读写:SQLite数据库打开只是一个文件的读写流。二.简单的数据库语句知识在android平台上,集成了一个嵌入式关系型数据库原创 2017-05-02 22:58:03 · 2088 阅读 · 1 评论 -
Android开发中SQLite Expert的操作技巧
最近学习SQLite Expert,了解过后,才觉得和MySql同工异曲,深度学习android开发,就必须了解Sqlite Expert,才能更上一层楼。在之前的一篇文章中我已经粗浅的介绍了SQLite的基本使用方法,这一骗我重点介绍一下SQlite的事务操作,适配器操作,分页操作等技巧.当然,先简单的温习一下Sqlite基本方法,http://blog.csdn.net/google_huchu原创 2017-05-23 22:49:03 · 3543 阅读 · 0 评论 -
Android adb常用命令详解
Android Debug Bridge(简称adb),身为android开发者,使用adb,会提升我们的开发效率,这里我就将我在开发中遇到的问题分享给大家.安装一个apk,执行以下命令:如: adb install demo.apk(如果不是当前目录,则后面要跟路径名:(adb install C:/Users/storm/temp/demo.apk)保留数据和缓存文件,重新安装apk: adb原创 2017-05-06 16:00:38 · 1614 阅读 · 0 评论