Android程序通常的方法是将apk文件利用ApkTool反编译,生成Smali格式的反汇编代码,然后阅读Smali文件的代码来理解程序的运行机制,找到程序的突破口进行修改,最后使用ApkTool重新编译生成apk文件并签名,最后运行测试,如此循环,直至程序被成功。1. 反编译APK文件ApkTool是跨平台的工具,可以在windows平台与linux平台下直接使用。使用
1.AIDL文本解释在软件工程中,接口定义语言(IDL)已经成为通用术语,是用来描述软件组件接口的特定语言。在Android中,该IDL被称为Android接口定义语言(AIDL),它是纯文本文件,使用Java类似语法编写。但是,编写Java接口的编写AIDL文件还有有些不同的。首先,对所有的非原始类型参数,需要指定如下三种类型方向指示符之一:in,out,inout。in类型方向指示符只用于输入
1.JSONJSON是JavaScript Object Notation的缩写,是JavaScript标准的一个子集。官方Android API已经内置支持读写JSON数据。这种格式非常适合表示不包含二进制数据的复杂对象。从某种程度上说,它也成了网络上共享数据的事实标准。下面的例子显示了一个简单的JSON数组,它包含3个对象,每个对象都存储People的信息。这种格式非常适合在网络服务上发送任务
Google Protocol Buffer(protobuf)是一种高效且格式可扩展的编码结构化数据的方法。和JSON不同,protobuf支持混合二进制数据,它还有先进的和可扩展的模式支持。protobuf已在大多数软件平台上实现,包括适用于Android的精简Java版。http://developers.google.com/protocol-buffers/上有protobuf文档,下载
语音识别主要的功能就是在用户不方便输入的时候找一个替代输入的选择。1.本地语音识别下面的代码首先创建SpeechRecognizer对象,并设置回调函数监听器。当在点击监听器中调用doSpeechRecognition()方法时,会使用语言参数和一个指示要在处理过程中分发部分结果的标志参数初始化语音识别。public class MainActivity extends Activity impl
1.手机的坐标空间我们都知道要想在手机上随心所欲的绘制图形,就必须了解手机的坐标体系。下图就是将坐标映射到手机屏幕的坐标。 图1手机屏幕基本坐标系2.OpenGL基本图形在OpenGL里,只能绘制点,直线以及三角形。三角形是最基本的图形,因为它的结构如此稳定,它随处可见,比如桥梁的结构化构件,它有三条边用来连接它的三个顶点,如果我们拿掉其中一个顶点,剩下的就是一条直线,如果我们再拿掉一个
1.宽高比问题我们现在相当熟悉这样一个事实,在OpenGL里,我们要渲染的一切物体都要映射到X轴和Y轴上[-1,1]的范围内,对于Z轴也一样。这个范围内的坐标被称为归一化设备坐标,其独立于屏幕实际尺寸或形状。不幸的是,因为它们独立于实际的屏幕尺寸,如果直接使用它们,我们就会遇到问题,例如在横屏模式下被压扁的桌子。假设实际的设备分辨率以像素为单位是1280*720,这在新的Android设备上是一个
本文目录ViewGroup的绘制流程onMeasure()函数与MeasureSpec模式分类如何使用模式onLayout()函数自定义ViewGroup实现LinearLayoutViewGroup的绘制流程要自定以ViewGroup,我们首先需要了解ViewGroup的绘制流程,其实View与ViewGroup绘制基本相同,只是在ViewGrou
在AndroidManifest.xml文件中,首先看到是的<manifest>节点,它是整个应用程序的基本属性,涵盖了默认进程名字,应用程序标识,安装位置,对系统的要求以及应用程序的版本等。它是AndroidManifest.xml文件的根节点,其中必须包含一个<application>节点,并且必须指定xmlns:android和package属性,其语法如下面的代码所
接下来,我们将完成QQ聊天界面的ListView滑动效果,大家可能都用过ListView,知道ListView是上下滑动的,并不会产生左右滑动的效果,如果想让ListView变成左右滑动的效果,必须对安卓源代码有所了解,如果你想了解源代码,请到 该专栏下了解详情。我的思路就是:所有的屏幕操作事件由ListView作做拦截,同时把事件传递给SlideView做滑动,这种实现的确可以
在<application>节点中有一个非常重要的属性,那就是backupAgent。这里我们将它单独列出来,从基本含义,用法及其相关属性等方面来详细介绍一下。1.backupAgent简介android:backupAgent用来设置备份代理。对于大部分应用程序来说,都或多或少保存着一些持久性的数据,比如数据库和共享文件,或者有自己的配置信息。为了保证这些数据和配置信息的安全性以及完
前面第三篇,第四篇博文虽然讲解了application节点的几个属性,但是还不够完全,本着对专业执着的精神,有必要深挖下去。1.android:allowBackup它表示是否允许应用程序参与备份。如果将该属性设置为false,则即使备份整个系统,也不会执行这个应用程序的备份操作,而整个系统备份能导致所有应用程序数据通过ADB来保存。该属性必须是一个布尔值,或为true,或为false,其默认值为
1.管理Activity的生命周期无论是正在运行的Activity还是没有运行的Activity,它们都接受Android的框架管理,这使得Activity处于不同的生命周期。①Activity的3种状态通过回调方法来管理Activity的生命周期对于开发一个健壮并且灵活的应用程序是非常关键的。Activity的生命周期直接影响到它与其他Activity,任务以及栈的关系。Activity存在3种
从大的方面来说,Android系统的启动可以分为两个部分:第一部分是Linux核心的启动,第二部分是Android系统的启动。第一部分主要包括系统引导,核心和驱动程序等,由于它们不属于本篇要讲的内容,这里就不再讨论。在本篇博客中,我们重点讲解Android系统的启动,这一过程主要经过两个阶段,分别是应用的初始化流程与system_service进程及核心服务的创建流程。1.初始化流程初始化流程,顾
如果说Activity通常都会提供一个用户界面UI的话,那么服务则不会提供任何用户界面,尽管如此,服务的作用仍然非常重要,它为我们提供了一种类似守护线程的手段来维持一些希望在退出以后仍然能持续运行的程序。1.服务既然服务的作用如此重要,本篇主要讲解如何使用服务和声明应用程序服务,下一节讲解怎么高效率的运用服务。①何为服务服务是一个应用程序组件,它在后台执行运行时间比较长的操作,不提供用户界面。它可
1.CArchive写入和读取文件void CGraphicView::OnFileWrite(){// TODO: Add your command handler code hereCFile file("1.txt",CFile::modeCreate | CFile::modeWrite);CArchive ar(&file,CArchive::store);int i=4;cha
我们接着简绍2种进程间通信的方法: 3.命名管道: 命名管道可以再2个任意进程间通信(包括网络上的2个不同主机之上的进程) 他们建立了如客户机/服务器的连接 创建命名通道的机器为服务器 连接命名通道的机器为客户机 在命名管道的使用中 我们会使用事件对象来标识管道的连接和读写操作 下面是要用到的函数:(有关详细简绍可以看msdn)这个函数用来创建一个命名管道 失败则返回INVALID_HANDLE_
因为类本身并不知道怎么进行比较所以类要实现comparable接口并且要覆写public int compareTo(Person o)此方法。而且还要覆写equals()和hashCode()方法。如果不覆写equals()方法那么即使对象对应值都相等,但地址内存不一样程序还是会输出重复项。 主程序 package liyuanjinglyj; import java.util.HashMap
activity_main.xml控件的线性布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_pa
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Configuration;using System.Data.SqlClient;using System.Data;namespace 呼叫中心.DAL{ clas
界面配置文件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:la
写入SD卡package com.example.openfileproject;import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; import
配置文件activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" &
对于用Context.startService()启动的service生命周期为onCreate()-onStartCommand()-onDestroy();如果多次用context.startService启动service只会多次执行onStartCommand()方法。根据音乐播放器的特性使用Context.startService()调用在合适不过了。public class MyMus
元数据接口package com.example.contentproviderprojecrt; import android.net.Uri; import android.provider.BaseColumns; public interface MLDNbatabaseMetaData {//外部访问,content地址://com.example.contentproviderproj
package com.example.savejsonproject; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; import java.util.
首先需要分析网易RSS订阅中心的网页布局情况。 网易RSS订阅中心:http://www.163.com/rss/ 你会发现RSS文件由一个<channel>元素及其子元素组成,除了频道本身内容之外,<channel>还以项的形式包含表示频道元数据的元素。 其中频道下面主要的三个元素就是: 1.title:频道或提要的名称。
Activity程序Activity.javapackage com.example.intentcaseproject;import android.net.Uri;import android.os.Bundle;import android.provider.ContactsContract;import android.app.Activi
本文介绍对象的强、软、弱和虚引用的概念、应用及其在UML中的表示。 1.对象的强、软、弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依
首先当然是创建Android项目,你可以选择最新的Android Studio也可以选择eclipse都是一样的。我们重点讲解开发OpenGL ES的流程1.定义顶点着色器和片段着色器第一节我们讲解的已经很细致了,为了便于理解在这里在详细的说明一下。并且换一种方式定义着色器。我们知道第一篇定义的顶点的坐标和颜色是分开的,这样可以但如果把它们放在一起会方便许多。假设我们要绘制一个长方形和两条直线,二
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号