Hello,Android
项目介绍
由于要參加某信息安全比赛。选择了安卓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的更多相关文章
- 【Android】设置android:maxLines="1"后,android:imeOptions="actionSearch"失效
android:singleLine在API LEVEL 3已经废弃,可以用android:maxLines="1"代替. 但是测试的时候发现设置android:maxLines= ...
- 通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击
通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击 大家肯定知道前几天刚爆出来一个linux内核(Android也用的linux内核)的dirtycow漏洞.此洞可 ...
- [转]JS调用Android里面的方法,Android调用JS里面的方法
FROM : http://blog.csdn.net/hj563308597/article/details/45197709 Android WebView 在公司Android的开发过程中遇到一 ...
- S5PV210之Sate210-F DIY硬件,移植uboot,kernel,android 活动现在已经进入实施阶段吗,欢迎广大网友参与 !
大家一起来diy 超低价四核的exynos4412或者Cortex A8S5pv210开源开发板 商业版Sate210已经完成了好久了.Sate4412 也已经出来.但是这两个接口非常全,主要是针对企 ...
- JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器
JS判断设备终端(PC,iPad,iPhone,android,winPhone)和浏览器 var ua = navigator.userAgent; var browser = {}, weixin ...
- WebSocket学习笔记IE,IOS,Android等设备的兼容性问
WebSocket学习笔记IE,IOS,Android等设备的兼容性问 一.背景 公司最近准备将一套产品放到Andriod和IOS上面去,为了统一应用的开发方式,决定用各平台APP嵌套一个HTML5浏 ...
- 基于iOS,Android的服务器证书失效检测
1.前言 在目前的iOS,Android手机上,当手机应用进行SSL通信时,手机端默认是不会进行服务器证书是否失效的监测. 在iOS上,系统是会定期获取所访问服务器的证书信息然后出存在本地. 在And ...
- Cocos2d-x在win32,android和IOS下的文件读写问题
最近在学习和使用Cocos2d-x框架,虽然说的是跨平台,但是在用VS进行开发,然后移植到android或IOS下,也可能会出现各种问题,需要做细微的调整. 例如我在做文件读写操作的时候,很可能在wi ...
- apk,task,android:process与android:sharedUserId的区别
apk一般占一个dalvik,一个进程,一个task.通过设置也可以多个进程,占多个task. task是一个activity的栈,其中"可能"含有来自多个App的activity ...
- 上海游侠电动汽车团队招募。iOS,Android,产品经理以及 SEVER 端工程师 - V2EX
上海游侠电动汽车团队招募.iOS,Android,产品经理以及 SEVER 端工程师 - V2EX 上海游侠电动汽车团队招募.iOS,Android,产品经理以及 SEVER 端工程师
随机推荐
- 封装removeClass()
<div class="box haha xixi">123</div> <script> function removeClass(eleme ...
- 静态页面之间的转发与json与ajax做到动态数据
我们见过很多使用jsp ,php,asp的动态网页技术的网站了,我们知道如果一个网站内容更新频率极低,而内容量不是十分庞大时,这样的网站(一次开发完成后不会需要较多的维护成本)的完全可以使用全部使用静 ...
- POJ1018 Communication System
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 26738 Accepted: 9546 Description We ...
- Android APK瘦身方法小结
众所周知,APP包体的大小,会影响推广的难度,用户不太喜欢下载太大的APP,同类型同等功能的APP中往往是包体小的更受用户的青睐,所以降低包体是一项非常必要的事情,也是最近公司的APP需要降低包体,所 ...
- 关于Bootstrap 利用radio实现tab切换的一个问题
1.html代码 <div class="col-sm-10 nav nav-tabs" id="typelist" role="tablist ...
- JS操作checkBox
代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w ...
- WPF的webBrowser控件关键代码
1.根据元素ID获取元素的值. 比如要获取<img class="" id="regimg" src="/register/checkregco ...
- 基于UDP高性能传输协议UDT doc翻译(一)
原文转自:http://hi.baidu.com/doodlezone/item/74a203155efe26dbbf9042dd UDT文档阅读理解 一. 概述 ...
- java keytool证书工具使用小结(转)
Keytool 是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:密钥实体(K ...
- AsBcd的意思