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 端工程师
随机推荐
- FreeFileSync
FreeFileSync is an Open-Source folder comparison and synchronization tool. It is optimized for highe ...
- MySQL 5.7主从复制与主主复制实现细节分析
0.简介: MySQL作为世界上使用最为广泛的数据库之一,免费是其原因之一.但不可忽略的是它本身的功能的确很强大.随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求.此 ...
- Linux应用层的定时器Timer使用详解【转】
转自:http://blog.csdn.net/wwwtovvv/article/details/8601528 版权声明:本文为博主原创文章,未经博主允许不得转载. linux下定时器的使用 -- ...
- nginx 根据POST GET方法跳转
location ~ /server/ { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_r ...
- 记录常见的HTTP请求错误
服务器提交了协议冲突. Section=ResponseHeader Detail=CR 后面必须是 LF 解决方案:winfrom 在app.config种添加 web 在 web.config种添 ...
- mysql 故障整理
mysql> system mysqldump -uroot -p -B mingongge >/root/mingongge_bak.sql Enter password: mysqld ...
- CDH-5.7.0:基于Parcels方式离线安装配置
http://shiyanjun.cn/archives/1728.html https://www.waitig.com/cdh%E5%AE%89%E8%A3%85.html
- Python的网络编程[4] -> DHCP 协议[1] -> DHCP 的 Python 实现
DHCP实现 / DHCP Implement 目录 DHCP 服务器建立过程 DHCP 报文加码实现过程 下面介绍建立一个简单的DHCP服务器,主要用于对基本的DHCP请求进行响应,目前只提供一个I ...
- Codeforces 1010D Mars rover
题目大意:对于一个不完全二分图,根节点为1,叶节点值为0或1,非叶节点包含一个操作(and,or,xor,not),求改变各个叶节点的值时(即0改为1,1改为0),根节点的值是多少 解法:遍历图求各节 ...
- Lucas定理模板【bzoj2982】【combination】
(上不了p站我要死了,侵权度娘背锅) Description LMZ有n个不同的基友,他每天晚上要选m个进行[河蟹],而且要求每天晚上的选择都不一样.那么LMZ能够持续多少个这样的夜晚呢?当然,LMZ ...