项目介绍

由于要參加某信息安全比赛。选择了安卓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. 封装removeClass()

    <div class="box haha xixi">123</div> <script> function removeClass(eleme ...

  2. 静态页面之间的转发与json与ajax做到动态数据

    我们见过很多使用jsp ,php,asp的动态网页技术的网站了,我们知道如果一个网站内容更新频率极低,而内容量不是十分庞大时,这样的网站(一次开发完成后不会需要较多的维护成本)的完全可以使用全部使用静 ...

  3. POJ1018 Communication System

      Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 26738   Accepted: 9546 Description We ...

  4. Android APK瘦身方法小结

    众所周知,APP包体的大小,会影响推广的难度,用户不太喜欢下载太大的APP,同类型同等功能的APP中往往是包体小的更受用户的青睐,所以降低包体是一项非常必要的事情,也是最近公司的APP需要降低包体,所 ...

  5. 关于Bootstrap 利用radio实现tab切换的一个问题

    1.html代码 <div class="col-sm-10 nav nav-tabs" id="typelist" role="tablist ...

  6. JS操作checkBox

    代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w ...

  7. WPF的webBrowser控件关键代码

    1.根据元素ID获取元素的值. 比如要获取<img class="" id="regimg" src="/register/checkregco ...

  8. 基于UDP高性能传输协议UDT doc翻译(一)

    原文转自:http://hi.baidu.com/doodlezone/item/74a203155efe26dbbf9042dd                  UDT文档阅读理解 一.  概述 ...

  9. java keytool证书工具使用小结(转)

    Keytool 是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:密钥实体(K ...

  10. AsBcd的意思