写给后端开发看的安卓入门

  • 写给后端开发看的安卓入门

    • 可以看也可以不看的序
    • 安卓的一些入门知识
      • ADT
      • SDK
      • API
      • Intent
    • Android的开发IDE
      • Eclipse
      • IDEA
      • Android Studio
    • 开发一个APP的过程
      • 初始化
      • 文件分布
      • 发短信的功能
        • 权限
        • 界面
        • Activity
    • 选择文件
    • 跳转
      • 第一个页面
      • 第二个页面

可以看也可以不看的序

作为一名计算机专业的学生,总有人会问我,会不会修电脑啦,会不会拉网线啦,会不会做APP啦…
一个老朋友问我说,会不会做APP啊,帮他做一个能群发短信的APP。我想了一下,把网易云短信介绍给了他。
但过了一段时间,他说网易云短信首充要2000块,这也太贵了吧。我只能说贵是贵了点,但是人家服务不错啊,而且市面上首充差不多都这个价。
他不干了,他说他不用那么多的,一次可能就发两三十条。让我帮他做一个,回去请我吃烤串。
我想了一下烤串的味道,于是就有了这篇文章。
好久没碰安卓了,最后一次是帮另个哥们做一个蓝牙控制的APP,还是在豪豪的帮助下才完成的。现在又要重操旧业,那就干脆写成一篇简单的教程。
写的不好,不对的地方欢迎指出。

安卓的一些入门知识

ADT

ADT,全称Android Development Tools。官网的介绍是,Eclipse这个IDE开发Android应用而安装的一个插件。因此,如果你不用Eclipse开发Anroid,那就不用安装了。

SDK

SDK,全称Software development kit,软件开发工具包。一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。

API

API,全称Application Programming Interface,应用程序编程接口。一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

Intent

Intent,意图,是Android程序中,各个组件之间进行交互的重要方式,它既可以完成当前Activity的要完成的动作,也可以在不同组件之间传数据。

Android的开发IDE

Eclipse

一开始,我使用的是Eclipse来开发,但是真的,很无奈,Eclipse不适合开发Android吧,一直有大大小小的毛病。如果你要使用Eclipse可能就要自己安装ADT了。如果不用那就只要下载SDK就行。

IDEA

没有试过,但是我的IDEA为了开发后端的速度,而特地去掉了很多插件,没有安卓环境,感觉应该和Android Studio差不多。

Android Studio

好了,就用它吧,Android是Google的亲儿子,而Android Studio是基于JetBrains IntelliJ IDEA,为Android开发特殊定制。安装后,配置一下SDK,或者不配也行,直接就能用了。

开发一个APP的过程

初始化


开启Android之后,将会这样的一个界面。然后点击Start a new Android Studio project 。
进入这个界面,我们把必要的内容填一下。

选择Empty Activity。
一直next,直到把项目Finish。
然后静静等项目初始化完成。
进入的界面如图

我点开的是意味着,你可以选择不同的视图模式。一般,应该是Android吧。

文件分布


主要用到的是这三个文件类。其实还有一些文件,也是有用,但是是辅助,比如说values放的是一些值,像@color/bule 这样的引用。

发短信的功能

权限

要想在Android上进行开发,就要记住需要用到系统的东西时,要加上权限。
比如说发短信的权限。

 <uses-permission android:name="android.permission.SEND_SMS"/>

加到AndroidManifest.xml中<appliction>...</appliction>上面。
这样,我们就能申请手机的短信权限。

界面

因为只是简单的做,所以,我就只是加一个button算了。
我们可以进入这个界面

其实,安卓在我心中,算是控件类编程。以前也做过C++的MVC和C#的Winform和WPF,也做过Java的界面,做过WE(魔兽)的编程。因此只是简单的使用,所以,我也没有多大的美化,反正套路就是,拉控件写监听的监听器,完工。

我们,先拉一个Button到界面上。
点击回到Text中,我们就能看到

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.web.chen.mymessage.MainActivity"android:weightSum="1"><Button
        android:layout_width="match_parent"android:layout_height="wrap_content"android:text="发送"android:id="@+id/button_send"android:layout_alignParentTop="true"android:layout_alignParentLeft="true"android:layout_alignParentStart="true"android:layout_weight="0.29" />
</LinearLayout>

Activity

我们点开MainActivity.java
初始化为

package com.web.chen.mymessage;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}
}

首先我们加入,对Button的引用,文件变这样。

package com.web.chen.mymessage;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//添加的代码Button btnSend=(Button)findViewById(R.id.btn_send);btnSend.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//点击的监听事件}});}
}

其中findViewById就是找到这个按钮, setOnClickListener就是监听事件。

比如说我们可以添加一个点击了就让手机显示你好的问候,那么我们就可以加入

Toast.makeText(MainActivity.this,"你好",Toast.LENGTH_SHORT).show();

这样在我们点击发送之后就会有“你好”弹出。
但这不是我们要的,我们要的是发短信,所以代码如下:

package com.web.chen.mymessage;import android.app.PendingIntent;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//短信final SmsManager smsManager=SmsManager.getDefault();final PendingIntent sentIntent = PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(), 0);//发送按钮Button btnSend=(Button)findViewById(R.id.btn_send);btnSend.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//点击的监听事件smsManager.sendTextMessage("15521381251",null,"你好",sentIntent,null);Toast.makeText(MainActivity.this,"你好",Toast.LENGTH_SHORT).show();}});}
}

一个可以发短信的按钮就开发完成了。

选择文件

在手机中我们有时候需要选择一些文件进行操作。因此,我们需要系统的意图。因此代码如下

Intent intent = new Intent();intent.setAction(Intent.ACTION_GET_CONTENT);intent.setType("*/*");intent.addCategory(Intent.CATEGORY_OPENABLE);startActivityForResult(Intent.createChooser(intent, "选择一个文件"), 2);

在安卓中当选中后将会有一个回调函数,这个函数编写如下

  /*** 意图的回调函数* @param requestCode 请求码* @param resultCode 响应码* @param data 数据*/@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode == 2 && resultCode == Activity.RESULT_OK) {Uri contentUri = data.getData();fileName = contentUri.getEncodedPath();Toast.makeText(MainActivity.this, "已经成功读取" + fileName, Toast.LENGTH_SHORT).show();}}

然后我们就可以对文件进行操作了

跳转

第一个页面

package com.example.chen.myapplication;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;/*** Created by CHEN on 2017/1/11.*/
public class FActivity extends Activity{private Button bt1;private Button bt2;private TextView textView;/*** 创建页面* @param savedInstanceState*/@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.factivity);bt1=(Button) findViewById(R.id.button2);//通过点击bt1 实现页面之间的跳转bt1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// private Context context 全局变量赋值 传参Intent intent=new Intent(FActivity.this,SActivity.class);startActivity(intent);}});bt2=(Button) findViewById(R.id.button3) ;bt2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(FActivity.this,SActivity.class);//第一个是intent对象//第二个是一个请求的标志startActivityForResult(intent,1);}});textView=(TextView) findViewById(R.id.textView);}/*** startActivityForResult* requuestCode 请求的标识 ,如1* resultCode 哪个页面返回的数据* data 是第二个页面的回传数据*/@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if(requestCode==1&&resultCode==1) {String content =data.getStringExtra("content");Toast.makeText(FActivity.this,content,Toast.LENGTH_SHORT).show();textView.setText(content);}}
}

第二个页面

package com.example.chen.myapplication;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;/*** Created by CHEN on 2017/1/11.*/
public class SActivity extends Activity {private Button bt;private String content="你好";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.sactivity);//被动式的回传bt=(Button)findViewById(R.id.button4);bt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent data=new Intent();//只是回传 不订目标data.putExtra("content",content);//和我们的request.getParameter一样setResult(1,data);//结果码 标识这个页面finish();//结束当前页面}});}
}

写给后端开发看的安卓入门相关推荐

  1. 写给程序员看的项目管理入门

    写给程序员看的项目管理入门 项目管理铁三角 定义任务范围 任务分解 进度计划 资源评估 任务排期 项目执行 提测阶段 冒烟周期长 代码bug 开发阶段 项目监控 项目回顾 附录 程序员从拿到一个需求到 ...

  2. 后端开发——Flask框架从入门到入坟(中)

    前言 在上一篇文章中荔枝已经梳理了Flask的基础语法,但是想要靠这些东西来写一个项目是远远不够的噢,我们还需要一个更加清晰的项目逻辑来搭建一个Flask后端项目框架,在真实的项目开发中,我们还需要了 ...

  3. 写给后端开发工程师的H5前端开发知识

    一.引言 web发展到目前为止已经有将近30年的历史,在web兴起的早期,并没有前端这个概念.最初所有的开发工作都是由后端开发工程师完成,随着业务越来越复杂,工作量逐渐的增加,项目中的可视化部分和一部 ...

  4. 后端开发——Flask框架从入门到入坟(终章)

    前言 前面已经将Flask框架的内容基本梳理完了,在这篇文章中荔枝会将Flask的部署上云的步骤跟大家分享一下,其实也是基于宝塔页面来进行配置的啦哈哈哈.荔枝也会将环境配置命令和数据库迁移步骤分享出来 ...

  5. java面试题对日开发_【埃森哲Java面试】面试的是对日java的后端开发-看准网

    其实对埃森哲不是很了解,在招聘网站上看到之后就填写了申请,本来因为没有对咨询有过经验,以为不会有网测之类的机会,结果就收到了网测,其实应该也不是海发,因为也有人没有收到,总而言之,网测通过之后就会收到 ...

  6. 写给Java开发看的 Docker 干货(零基础部署Nginx MySQL SpringBoot)

    前言 Docker是当下使用最多的一种容器技术,想精通Docker并不容易,在公司生产中会有专门的运维人员负责.但是身为开发人员,适当的学习Docker是必要的.Docker的好处这里就不介绍了,网上 ...

  7. java安卓开发 快速入门_安卓程序员如何快速入门后端开发常识

    首先,对于安卓开发人员来说,学习一下后端开发知识是有必要的,一方面可以拓展自身的知识面,另一方面也可以推动自己走向全栈程序员发展路线,在云计算时代,全栈程序员的发展空间会更大一些. 相对来说,安卓程序 ...

  8. appinventor2 MySQL,写给大家看的安卓应用开发书 App Inventor 2快速入门与实战pdf

    没错,你有能力创建自己的安卓应用,而且一点都不难.AppInventor2,让你分分钟成为应用开发者! 本书由浅入深地介绍了强大的可视化编程工具AppInventor2,任何人都可以用它来开发自己的应 ...

  9. 2021-11-03大数据学习日志——数据埋点+网络爬虫——后端开发入门

    01_mini-web 本章节学习目标 能够知道Web开发流程 能够知道使用web应用程序处理客户端的动态资源请求操作 能够知道路由列表的实现 能够知道装饰器方式的添加路由 能够知道logging日志 ...

最新文章

  1. java 基础 --静态
  2. mysql四:数据操作
  3. plsql查询数据中文乱码
  4. streaming接mysql数据库_[Spark streaming举例]-- 实时统计并且存储到mysql数据库中
  5. 14种模式解决面试算法编程题(PART I)
  6. 错乱的 Windows 10
  7. cJSON解析和打包
  8. 硬核!尽量避免 bug 手法,让测试彻底失业
  9. AutoCAD全面卸载的方法
  10. kong_团结的面Kong:国际妇女节
  11. idb 怎么回复mysql_mysql中的.idb文件 怎么正常显示
  12. java 求任意输入半径,圆的周长和面积。
  13. 【语音智能管家】之语音唤醒(附演示视频)
  14. 概率统计Python计算:标准正态分布分位点计算
  15. excel取整函数_10个Excel实用技巧 | 附案例详解
  16. 两句话中的不常见单词(Uncommon Words from Two Sentences)java
  17. 华为手机nova计算机怎么找过程,华为nova手机拆机全过程 华为nova真机拆解图解教程...
  18. mac系统按Esc键无法切换vim编辑模式
  19. 容联云聚客SCRM如何破SCRM保险应用困局
  20. 打码平台php源码,正方验证码识别(非打码平台)(已解决运行出现4个#)

热门文章

  1. 应用程序意外变成另外一个应用程序的图标,打开就是另外一个程序!Synaptics.exe到底是什么?
  2. Matlab绘图-详细,全面(二维三维等)
  3. 可以实现内网穿透的几款工具
  4. C语言%lld、%llu无法正常输出比long long长整数小的数
  5. Ableton Live Suite 10.1.15 WiN 音乐制作宿主软件下载
  6. 【干货收藏】数据分析师必备的20种分析思维
  7. JavaWeb框架(二):Servlet组件入门
  8. Linux函数exec
  9. vue3全局变量定义使用
  10. Breeze's MapHack 1.0 正式版发布【修正版发布】