zoukankan      html  css  js  c++  java
  • My Magic Android Tour —— 处女作

        近期考试什么的都已经结束了,闲在家也没什么事做,就想着学点什么,于是便选择了学一下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
    {
    	@Override
    	protected 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-sdk
            android:minSdkVersion="10"
            android:targetSdkVersion="19" />
        <application
            android: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就不在支持从默认包中导入类,这样做的目的我想应该是帮助开发人员养成使用包名的好习惯。


    
  • 相关阅读:
    管理信息系统的开发与管理
    加载静态文件,父模板的继承和扩展(2017.11.3)
    开始Flask项目(2017.11.3)
    夜间模式的开启与关闭,父模板的制作(2017.11.2)
    完成登录与注册页面的前端(2017.10.31)
    JavaScript 基础,登录验证(2017.10.24)
    CSS实例:图片导航块(2017.10.20)
    导航,头部,CSS基础 (10.18)
    ASCII表
    RSA加密算法
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6722958.html
Copyright © 2011-2022 走看看