项目介绍

由于要參加某信息安全比赛。选择了安卓apk的行为分析与评估的课题,所以首先须要了解安卓程序是如何编写和执行的。我们的第一个任务就是写出一个多人通信的app。

我本人之前没有不论什么安卓和java的开发经验,仅仅有C#的项目经验。并且由于我们的项目本身是apk的行为分析而不是编写app,所以仅仅能想办法“速成”了。

工具及參考书

  • 开发工具:Android Studio2.0
  • Java
  • 參考书:疯狂安卓讲义第二版

開始第一个安卓项目

新建一个项目







选择一个主题:





工作区介绍

例如以下图:和大多数IDE一样,左边是工作区,包括了各种文件。这些文件的意义在《疯狂安卓讲义》这本书中讲的非常清楚。

中间是各种布局和控件。

我选择手写布局



改动控件的属性



加入一个按钮

完好布局

让Button更加完好

给Button实现单击功能





假设图中的解释看不清的话,将网页放大就能够了。

这里最让我不解的是这段代码:

pushBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});

首先setOnClickListener函数中的參数我猜应该是一个ClickListener对象。可是这个代码直接new 了一个对象。并且还在里面重写了一个函数。实在看不懂,可是想起之前在C#中有匿名方法这一节。又去查看了View类的源代码,发现OnclickListener是View的一个接口。于是通过上网查资料,理解了这个问题。这里相当于创建了一个新类。这个类继承了View的OnClickListener接口。并重写了当中的onClick方法,通过new实例化了。

完好OnClick

生成apk













安装执行

结语

安卓的一个十分简单的程序就完毕了。首先本文不是一篇为了介绍如何开发安卓程序的文章,而是一个高速了解安卓的文章。所以有理解不准确的地方欢迎指正。

《疯狂安卓讲义》的第一章对安卓的各个方面进行了整体的介绍。建议多读几次,剩下的选择比較重要的部分理解,比例如以下篇文章要讲的线程之间的通信:Handler。

Hello,Android的更多相关文章

  1. 【Android】设置android:maxLines="1"后,android:imeOptions="actionSearch"失效

    android:singleLine在API LEVEL 3已经废弃,可以用android:maxLines="1"代替. 但是测试的时候发现设置android:maxLines= ...

  2. 通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击

    通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击 大家肯定知道前几天刚爆出来一个linux内核(Android也用的linux内核)的dirtycow漏洞.此洞可 ...

  3. [转]JS调用Android里面的方法,Android调用JS里面的方法

    FROM : http://blog.csdn.net/hj563308597/article/details/45197709 Android WebView 在公司Android的开发过程中遇到一 ...

  4. S5PV210之Sate210-F DIY硬件,移植uboot,kernel,android 活动现在已经进入实施阶段吗,欢迎广大网友参与 !

    大家一起来diy 超低价四核的exynos4412或者Cortex A8S5pv210开源开发板 商业版Sate210已经完成了好久了.Sate4412 也已经出来.但是这两个接口非常全,主要是针对企 ...

  5. JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器

    JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器 var ua = navigator.userAgent; var browser = {}, weixin ...

  6. WebSocket学习笔记IE,IOS,Android等设备的兼容性问

    WebSocket学习笔记IE,IOS,Android等设备的兼容性问 一.背景 公司最近准备将一套产品放到Andriod和IOS上面去,为了统一应用的开发方式,决定用各平台APP嵌套一个HTML5浏 ...

  7. 基于iOS,Android的服务器证书失效检测

    1.前言 在目前的iOS,Android手机上,当手机应用进行SSL通信时,手机端默认是不会进行服务器证书是否失效的监测. 在iOS上,系统是会定期获取所访问服务器的证书信息然后出存在本地. 在And ...

  8. Cocos2d-x在win32,android和IOS下的文件读写问题

    最近在学习和使用Cocos2d-x框架,虽然说的是跨平台,但是在用VS进行开发,然后移植到android或IOS下,也可能会出现各种问题,需要做细微的调整. 例如我在做文件读写操作的时候,很可能在wi ...

  9. apk,task,android:process与android:sharedUserId的区别

    apk一般占一个dalvik,一个进程,一个task.通过设置也可以多个进程,占多个task. task是一个activity的栈,其中"可能"含有来自多个App的activity ...

  10. 上海游侠电动汽车团队招募。iOS,Android,产品经理以及 SEVER 端工程师 - V2EX

    上海游侠电动汽车团队招募.iOS,Android,产品经理以及 SEVER 端工程师 - V2EX 上海游侠电动汽车团队招募.iOS,Android,产品经理以及 SEVER 端工程师

随机推荐

  1. reduce实现数组求和

    对于实现数组求和,我们常用的思路是通过for.while,对数组进行迭代,依次将他们的值加起来,下面列举常用的两种方法 第一种: var arr = [1,2,3,4,5,6]; Array.prot ...

  2. ssh xshell 连接在vim中无法用 ctrl+insert 复制黏贴

    在用户目录编辑.vimrc文件不存在则创建,vi的三种模式:命令模式,插入模式,可视模式,鼠标可以启动于各种模式中,所以配置文件中的set mouse=a启动了所有模式,这样就屏蔽了鼠标右健功能,se ...

  3. Java异常throws与throw的区别

    throws关键字通常被应用在声明方法时,用来指定可能抛出的异常.多个异常可以使用逗号隔开.当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象.谁调用谁处理: 抛出异常throws: ...

  4. 【Android开发日记】之入门篇(二)——调试

    程序员有一半的时间花在测试BUG身上,而作为一个程序员遇上BUG是不可避免的事情.所以掌握好调试BUG的技术就显得至关重要.接下来我来讲述调试的几个要点. 一.调试机器的选择(模拟器) eclipse ...

  5. 【linux高级程序设计】(第十五章)UDP网络编程应用 4

    socket信号驱动 为了使一个套接字能够使用信号驱动I/O,至少需要以下3步操作. 1.安装SIGIO信号 2.套接字的拥有者设定为当前进程.因为SIGIO信号只会送到socket拥有者进程. 通过 ...

  6. hdu 1856(hash+启发式并查集)

    More is better Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others) ...

  7. 随手看的一本书《java微服务》,测试成功了其中的第一个样例

    静态语言,JAVA应该多了解,结合微服务,DOCKER,再搞搞SPRING CLOUD,就能跟上时代了. 对了,链一个买书的地址: https://item.jd.com/12089180.html ...

  8. 推荐一个国内的免费公共静态cdn

    https://cdn.baomitu.com/ 更新速度比bootcdn要快,收录的库也很齐全.

  9. Python的网络编程[1] -> FTP 协议[0] -> FTP 的基本理论

    FTP协议 / FTP Protocol FTP全称为File Transfer Protocol(文件传输协议),常用于Internet上控制文件的双向传输,常用的操作有上传和下载.基于TCP/IP ...

  10. 安装mysql数据库图文教程

    一.首先下载该版本的Mysql  5.5.28双击软件,弹出软件的安装界面如下 二.点击Next  ,点击同意