近期考试什么的都已经结束了,闲在家也没什么事做,就想着学点什么,于是便选择了学一下Android开发。一直在使用Android手机。要是自己能为自己的手机开发一个APP就好了。

好了,也不扯些废话了,開始Android之旅吧。只是出师必需要有名,因为是探索未知世界,我便取名叫“My Magic Android Tour”好了。

因为之前做课程设计(全然是打酱油的)已经配置过环境之类的,这也是上次的唯一收获,事实上也不太好,剥夺了我学习配置环境的机会,。哎,所以说“祸兮福所倚,福兮祸所伏”。额……,又扯远了。

第一步:

打开Eclipse,新建一个Androidproject,此时须要填写project相关信息。例如以下图。

    那么。这里的每一项是什么意思呢?将焦点分别移至每一项上面,能够总结出例如以下表格。
       依照上述表格。我填写各项信息例如以下。
       这里的Theme项仅仅能选择None,假设选择其它主题,都会报错,原因是当前最低版本号的SDK不支持这些主题。
    傻瓜式操作——Next,
    在这里就使用默认。Next,
    在这里是设置应用程序图标的,任然使用默认。Next,
    这里的Create Activity原来是选中的,但是报了错,依然是SDK版本号不支持。

于是仅仅好去掉,但是去掉之后,就不会在创建应用程序的时候自己主动生成一个Activity。

当然,这并非什么大问题,由于我能够手动去创建,还能学到不少呢。再一次验证了“祸兮福所倚,福兮祸所伏”这句话。

    在这里设置完毕后。就能够点击Finish来完毕应用程序的创建了。至此,我也完毕了第一步。

第二步:

在某一本书上说:Android程序用XML文件来布局UI,用Java类来处理逻辑。

于是。我们便创建一个XML文件,并且该XML文件必需要放在layout目录中。

创建成功后。打开该XML文件。能够看到例如以下代码。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ></LinearLayout>

第一个程序仅仅为熟悉流程,不实现不论什么功能,所以,不改动XML文件不论什么地方。

XML创建好后,须要创建一个Java类来载入该XML文件上的内容。可是此处的Java类是一个特殊的类,它必须继承自android.app.Activity类。

创建好后。为了载入该XML文件,必需要重写onCreate方法,能够把它看做是普通Java程序中的main方法。

public class MainActivity extends Activity
{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);// Other Code……}
}

至此。便完毕了整个程序的编写,看来还是挺简单的嘛。

接下来的工作就是要将程序跑起来。

第三步:

为了将程序跑起来,我们必需要启动模拟器。因为第一次编写Android应用,所以必须先新建一个模拟器。在Eclipse的工具条上单击button,此时能够看到一个模拟器都不存在。

所以要New一个。

按要求填写各项信息,然后确定。

OK,接下来,启动刚才创建好的模拟器即可了。

还挺像一部手机的嘛,难怪叫模拟器呢!好了,不说废话了,执行程序吧。

点击之后,等了好大一会,但是一点反应都没有。于是,翻书、百度。哦,原来是没有注冊刚才写的Activity类。

打开清单文件AndroidManifest.xml,注冊MainActivity类。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="tour.magic.helloandroid"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="10"android:targetSdkVersion="19" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><!-- 在此处注冊Activity类 --><activity android:name="MainActivity" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application>
</manifest>

再次执行,会发现应用程序还没跑起来就挂掉了。

究竟是什么原因呢。于是带着这个问题去百度,有人说打开Logcat查看详细原因,我变照着做了,看到例如以下原因。

从上诉原因中看到java.lang.ClassNotFoundException这个异常,为什么找不到类文件呢?它明明就在那里啊,带着这个问题继续百度。看到有人说要在配置文件里的语句<activity android:name="MainActivity" >中的MainActivity前面加一个'.'表示当前文件夹,我便加上去了。<activity android:name=".MainActivity" >。再次执行。会发现根本没什么用,依然还是那个异常。

这究竟是哪里出问题了呢,此刻的我很的焦急了。可是还是像个武林高手一样气沉丹田,慢慢地,冷静下来了,于是開始静静思考原因。首先。既然'.'表示当前文件夹,那么当前文件夹究竟是什么呢?此时抬头看到45°角处写着package="tour.magic.helloandroid"。

文件夹找着了,在就看该文件夹下究竟有没有类文件。

切换到src下,惊人地发现

哦,原来我的MainActivity类在默认包中。难怪呢,大哥,您干嘛要躲在这儿呢?害得我真慘啊。

好了,问题总算是找着了,接下来就是要解决它。粗略一想,有3种方案。

第一种:在src下新建一个tour.magic.helloandroid包,然后将MainActivity类移到这个包下。

另外一种:在注冊MainActivity是带上其所在包名;

第三种:将清单文件里package="tour.magic.helloandroid"后面的值改为MainActivity所在包名。

细致考虑了一下,后面两种不可取。原因例如以下:

对于另外一种。带上包名,但是我的类在默认包中啊,Java从1.4版本号開始就不支持导入默认包中的类了[见附录1]。当然也能够新建一个不同于第一种解决方式中包,将类移进去,这样在那些须要非常多包的程序中是挺好的,但是在本程序中,全然没有必要这么麻烦,安装第一种解决方式中就能够了。

对于第三种,改动清单文件这里的包名,由于整个应用程序仅仅有这一个清单文件,那么就有可能由于改动了此处的包名而影响其它地方,不值得冒这个险。

于是,便採用方案一来解决。

再次执行程序,看到程序总算能够跑起来了,真是有些小小的激动。

OK。以下来总结一下整个流程。

写到此处。My Magic Android Tour处女作也快接近尾声了,第一次怎么大篇幅地写一篇文章。只是既然已经开了头,那么就继续坚持下去。每天将所学记录成文。

在记录中成长,在分享中进步!

附录1:

Java从JDK1.4就不在支持从默认包中导入类,这样做的目的我想应该是帮助开发人员养成使用包名的好习惯。



转载于:https://www.cnblogs.com/yxysuanfa/p/6722958.html

My Magic Android Tour —— 处女作相关推荐

  1. Android OrangePi 4G IOT(二) - MTK更换调试串口

    一.Debug LOG串口更改 orangepi 4G iot的默认的log调试串口是在板子后面的,使用起来不方便,之前UART0焊接不好导致焊盘弄坏了,没办法,准备修改成插针的40pin引脚的的UA ...

  2. 华为荣耀android是什么系统,华为荣耀Magic自主系统梦碎 还是Android操作系统

    华为荣耀Magic自主系统梦碎 还是Android操作系统 来源:www.18183.com作者:似水流年时间:2016-12-07 华为荣耀Magic这么魔幻的名字会不会有自己的操作系统呢?本文小编 ...

  3. android 不卡 华为,荣耀Magic是什么系统 华为荣耀Magic手机是不是也不卡?

    此前传闻荣耀Magic将不再使用安卓系统,而采用自主操作系统,令不少花粉兴奋,不过随着荣耀Magic正式发布,该机搭载的操作系统也正式得到了确认,那么,荣耀Magic是什么系统?是否是和华为Mate9 ...

  4. 关掉magiskhide_Magisk v20.4 – The Magic Mask for Android 安裝流程

    Magisk 是topjohnwu 在XDA 所释出的MOD,主要是提供一个通用介面??来让开发者能够较为轻松的开发以及维护Systemless 架构的功能模组,其中在处理Android Pay 使用 ...

  5. magic和android的区别,荣耀Magic缺点是什么?荣耀Magic优缺点一览

    荣耀Magic作为一款概念手机,发布之初就受到所有媒体的关注.而根据官方的发布会介绍,荣耀Magci的研发周期超过了4年,耗费了无数工程师们的心血.当然,任何事物都不是完美的,更何况电子产品.荣耀Ma ...

  6. magic版本和android版本,华为荣耀Magic进化版和稳定版区别是什么?

    首先要告诉大家的是,目前荣耀Magic国行发布都是标准版.而网上或者网友提到的荣耀Magic进化版,其实是对荣耀Magic系统的版本的一种区分.根据荣耀官方给出的数据,荣耀Magic在硬件配置上,不存 ...

  7. magic版本和android版本,荣耀Magic2的6G版和8G版差什么? 荣耀Magic2版本对比

    荣耀Magic2是最近非常火的一款滑盖全面屏手机,配备屏幕指纹.40W超级快充等,售价3799元起,在国产高端旗舰机中性价比也很不错.而最近有网友问到小编这样一个问题:荣耀Magic2的6G版和8G版 ...

  8. ubuntu+for+android华为荣耀,华为荣耀magic book(锐龙版)安装ubuntu系统

    荣耀magic book锐龙版性价比很高,前段时间在朋友推荐下我自己也入手了一台.机器整体感觉不错,续航时间长(办公.无线上网5-6小时吧),速度快,买的时候4300,现在已经降到4000以下了,也算 ...

  9. magic版本和android版本,荣耀Magic有几个版本?荣耀Magic各版本区别对比评测

    今天下午,华为在上深圳召开发布会,正式发布了荣耀Magic未来手机,大家期待的荣耀Magic手机已经正式亮相.那么荣耀Magic有几个版本?荣耀Magic各版本有什么区别?针对不少网友比较关心的问题, ...

最新文章

  1. Linux串口读取与解析
  2. logo qt添加_linux下如何给qt程序添加图标?
  3. oracle 输出重复记录,ORACLE 去除重复记录
  4. mysql 网络io_MySQL的各种网络IO超时的用法和实现
  5. BRCM5.02编译八: ERROR: you are missing a basic functioning perl installation
  6. selenium V1.0和V2.0差别对比
  7. Android9获取权限闪退,Android 9.0 关于ACTION_CALL无权限导致闪退的问题
  8. 连续子数组的最大和python_连续子数组的最大和
  9. Decorator(装饰)--对象结构型模式
  10. c#连mysql的latin1编码乱码问题
  11. 经典线程同步 互斥量Mutex的使用分析
  12. java 单例加锁方法的讨论
  13. [SQL实战]之查找当前薪水排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不准使用order by
  14. 测试团队月报怎么写?
  15. 现代通信技术之SDH技术
  16. 系统仿真实践中的精益思维(随感)
  17. 电脑如何录制游戏视频
  18. 【项目经验】产研流程(超级详细的步骤)
  19. html中引用名言标签,CSS3 培根名人名言引用全屏居中样式设计
  20. 【unity3D】单点和多点触控

热门文章

  1. 关于windows10系统下没有选择双系统的界面直接进入windows10的解答
  2. NPDP如何续证?操作指南来了!
  3. 秋季喝什么茶对身体好
  4. plt.figure、plt.subplot介绍以及绘制图中图(含代码)
  5. 强化学习课程(David Silver)笔记(2)——MDP
  6. 网络安全意识 | 震惊!密码保护竟然是个圈
  7. 随机生成温度 前端动态实时
  8. python工程师需要什么学历,python工程师怎么考证
  9. matlab ncg,Matlab 线性规划实践
  10. python——Pycharm的简单介绍