精华内容
下载资源
问答
  • android入门
    千次阅读
    2018-09-07 17:53:13

    分享一个android端的小例子,代码虽少,五脏俱全。

    得到的效果是

    废话不多说,直接上代码。

    我们先看项目的结构。

    我们的主活动页面是activity_main.xml   代码如下

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
    
        <TextView
            android:id="@+id/question_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:padding="24dp"/>
    
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|center_horizontal"
            android:orientation="horizontal">
    
            <Button
                android:id="@+id/true_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/true_button"/>
    
            <Button
                android:id="@+id/false_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/false_button"/>
        </LinearLayout>
    
        <Button
            android:id="@+id/cheat_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|center"
            android:text="@string/cheat_button"/>
    
        <Button
            android:id="@+id/next_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|right"
            android:text="@string/next_button"/>
    
    
    </FrameLayout>
    

    对应的活动页面是MainActivity.java,代码如下:

    package ligz.com.geoquiz;
    
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
        private static final String TAG = "QuizActivity";
        private static final String KEY_INDEX = "index";
    
        private Button mTrueButton;
        private Button mFalseButton;
        private Button mNextButton;
        private TextView mQuestionTextView;
        private Button mCheatButtton;//作弊的按钮
        private boolean mIsCheater;
    
        private TrueFalse[] mQuestionBank = new TrueFalse[]{
                new TrueFalse(R.string.question_text,true),
                new TrueFalse(R.string.question_text1,true),
                new TrueFalse(R.string.question_text2,true),
                new TrueFalse(R.string.question_text3,true),
                new TrueFalse(R.string.question_text4,false),
        };
    
        private int mCurrentIndex = 0;
    
        private void updateQuestion(){
            int question = mQuestionBank[mCurrentIndex].getmQuestion();
            mQuestionTextView.setText(question);
        }
    
        private void checkAnswer(boolean userPressedTrue){
            boolean answerIsTrue = mQuestionBank[mCurrentIndex].ismTrueQuestion();
    
            int messageResId = 0;
    
            if(mIsCheater){
                messageResId = R.string.judgment_toast;
            }else{
                if(userPressedTrue == answerIsTrue){
                    messageResId = R.string.correct_toast;
                }else{
                    messageResId = R.string.incorrect_toast;
                }
            }
    
    
            Toast.makeText(this,messageResId,Toast.LENGTH_SHORT).show();
        }
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            Log.d(TAG, "onCreate(Bundel) called");
            setContentView(R.layout.activity_main);
    
            //从数组中拿出问题放入TextView
            mQuestionTextView = (TextView)findViewById(R.id.question_text_view);
    
    
            /**
             * 正确按钮
             */
            mTrueButton = (Button)findViewById(R.id.true_button);
            //使用监听器
            mTrueButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    checkAnswer(true);
                }
            });
            /**
             * 错误按钮
             */
            mFalseButton = (Button) findViewById(R.id.false_button);
            mFalseButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    checkAnswer(false);
                }
            });
            /**
             * 下一道题目按钮
             */
            mNextButton = (Button)findViewById(R.id.next_button);
            mNextButton.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View view) {
                    mCurrentIndex = (mCurrentIndex + 1) % mQuestionBank.length;
                    mIsCheater = false;
                    updateQuestion();
                }
            });
            if(savedInstanceState != null){
                mCurrentIndex = savedInstanceState.getInt(KEY_INDEX, 0);
            }
            /**
             * 作弊的按钮跳转
             */
            mCheatButtton = (Button) findViewById(R.id.cheat_button);
            mCheatButtton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //Start CheatActivity
                    //跳转activity
                    Intent i = new Intent(MainActivity.this, CheatActivity.class);
                    //传递内容
                    boolean answerIsTrue = mQuestionBank[mCurrentIndex].ismTrueQuestion();
                    i.putExtra(CheatActivity.EXTRA_ANSWER_IS_TRUE, answerIsTrue);
                    //startActivity(i);
                    startActivityForResult(i,0);//第二个参数是请求代码,当一个activity有多个子activity时,且需要区分消息反馈
                }
            });
    
            updateQuestion();
    
    
        }
    
        @Override
        public void onSaveInstanceState(Bundle savedInstanceState){//记住当前的答案,当屏幕旋转时,仍可以回到当前问题
            super.onSaveInstanceState(savedInstanceState);
            Log.i(TAG, "onSavedInstanceState");
            savedInstanceState.putInt(KEY_INDEX, mCurrentIndex);
        }
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data){//
            if(data == null){
                return;
            }
            mIsCheater = data.getBooleanExtra(CheatActivity.EXTRA_ANSWER_SHOWN, false);
        }
    }
    

    点击cheat按钮,进入查看答案的页面,对应的xml文件是activity_cheat.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"
        android:gravity="center">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="24dp"
            android:text="@string/warning_text"/>
    
        <TextView
            android:id="@+id/answerTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="24dp"/>
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/showAnswerButton"
            android:text="@string/show_answer_button"/>
    </LinearLayout>

    对应的CheatActivity.java文件如下:

    package ligz.com.geoquiz;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    /**
     * Created by Es muss sein on 2018/9/4.
     */
    
    public class CheatActivity extends Activity{
        public static final String EXTRA_ANSWER_IS_TRUE = "ligz.com.geoquiz.answer_is_true";
        public static final String EXTRA_ANSWER_SHOWN = "ligz.com.geoquiz.answer_show";
    
        private boolean mAnswerIsTrue;
    
        private TextView mAnswerTextView;
    
        private Button mShowAnswer;
    
    
    
        private void setAnswerShowResult(boolean isAnswerShown){
            Intent data = new Intent();
            data.putExtra(EXTRA_ANSWER_SHOWN, isAnswerShown);
            setResult(RESULT_OK, data);
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_cheat);
    
            mAnswerIsTrue = getIntent().getBooleanExtra(EXTRA_ANSWER_IS_TRUE, false);
    
            mAnswerTextView = (TextView)findViewById(R.id.answerTextView);
    
            //答案不会显示除非用户按下按钮
            setAnswerShowResult(false);
            mShowAnswer = (Button)findViewById(R.id.showAnswerButton);
            mShowAnswer.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if(mAnswerIsTrue){
                        mAnswerTextView.setText(R.string.true_button);
                    }else{
                        mAnswerTextView.setText(R.string.false_button);
                    }
                    setAnswerShowResult(true);
                }
            });
        }
    
    
    }
    

    model文件TrueFalse.java如下:

    package ligz.com.geoquiz;
    
    /**
     * Created by Es muss sein on 2018/9/3.
     */
    
    public class TrueFalse {
        private int mQuestion;
    
        private boolean mTrueQuestion;
    
        public TrueFalse(int mQuestion, boolean mTrueQuestion){
            this.mQuestion = mQuestion;
            this.mTrueQuestion = mTrueQuestion;
        }
    
        public int getmQuestion() {
            return mQuestion;
        }
    
        public void setmQuestion(int mQuestion) {
            this.mQuestion = mQuestion;
        }
    
        public boolean ismTrueQuestion() {
            return mTrueQuestion;
        }
    
        public void setmTrueQuestion(boolean mTrueQuestion) {
            this.mTrueQuestion = mTrueQuestion;
        }
    }
    

    对应Strings.xml如下:

    <resources>
        <string name="app_name">GeoQuiz</string>
        <string name="question_text">中国哲学简史的作者是否是冯友兰</string>
        <string name="question_text1">1984的作者是乔治奥威尔吗</string>
        <string name="question_text2">王小波写过沉默的大多数吗</string>
        <string name="question_text3">意志和表象的世界是叔本华的作品吗</string>
        <string name="question_text4">牛棚杂忆和动物庄园的作者是同一人吗</string>
    
        <string name="cheat_button">cheat!</string>
        <string name="warning_text">你确定要查看答案吗</string>
        <string name="show_answer_button">查看答案</string>
        <string name="judgment_toast">Cheating is wrong</string>
    
        <string name="true_button">对</string>
        <string name="false_button">错</string>
        <string name="menu_settings">Settings</string>
        <string name="correct_toast">回答正确</string>
        <string name="incorrect_toast">回答错误</string>
        <string name="next_button">下一题</string>
    </resources>
    

    csdn下载

    更多相关内容
  • Android入门

    2019-02-26 13:28:39
    Android入门
  • Xamarin.Android 入门(官网)中文文档.pdf 是微软官网上的Xamarin.Android 中文文档,希望对大家开发有帮助
  • android入门到精通.pdf

    2018-04-09 14:53:31
    android入门到精通.pdfandroid入门到精通.pdfandroid入门到精通.pdfandroid入门到精通.pdfandroid入门到精通.pdf
  • Android入门到精通详解 (带目录)......................
  • Android入门到精通详解(完整书签)

    热门讨论 2015-04-10 16:59:40
    Android入门到精通详解(完整书签)
  • android入门书籍经典

    2016-02-29 11:21:08
    此书作为android入门是很不错的选择,适合对android没有基础的人士,能够全面的了解android基本知识,并能窥探其中的一些细节,做到知其然。
  • Android入门经典

    2019-01-25 12:13:30
    Android入门经典,新手必备的经典,从0开始学Android。
  • android入门到精通

    2021-08-22 15:36:10
    Android入门到精通学习资料,android参考手册,很好的学习资料,适合初学者
  • 韦东山老师的Android入门视频教程,该课程主要讲解android开发所需的Java基础知识,包括Java类、封装、继承、多态、异常、泛型、反射等知识点。看完这十多节视频就能掌握Android开发所需的java知识
  • Android入门PPT

    2012-07-28 08:28:17
    Android 是Google公司于2007年11月宣布的一种基 于 Linux® V2.6 内核的综合操作环境。最初,Android 的部署目标是移动电话领域,包括智能电话和更廉价的翻盖手机。但是, Android 全面的计算服务和丰富的功能支持...
  • android 入门书籍

    2014-12-17 20:44:42
    多个android 入门开发书籍,对于刚学习android开发的人很是有用。
  • Android入门书籍

    2014-03-22 17:18:31
    本压缩包中总共包含了五本入门书籍,分别为:《14天学会android开发》、《android开发从入门到精通》、《android入门》、《android开发入门与实践》、《深入浅出Google_Android》
  • android入门学习.ppt

    2015-11-06 15:34:44
    android入门学习.ppt,对于新手学习android入门有很大的帮助
  • Android入门基础教程(小白速成1)

    千次阅读 多人点赞 2021-01-11 17:56:04
    Android 入门基础教程(小白速成1) 编译工具:Android Studio 各种工具其实大同小异 开发环境的搭建还有项目新建这里就不过多说明了,网上有很多教程。项目新建按照需求来就好,我这里选用空的界面(Empty Activity...

    Android 入门基础教程(小白速成1)

    编译工具:Android Studio
    各种工具其实大同小异
    开发环境的搭建还有项目新建这里就不过多说明了,网上有很多教程。项目新建按照需求来就好,我这里选用空的界面(Empty Activity)和Android 4.0.3,大家一定要注意安卓版本匹配问题鸭,之前每次新建项目都报错,最后才发现是版本匹配问题。
    话不多说,进入正题吧!

    Hello World!

    新建好项目以后,我们首先认识几个主要用到的界面。
    在这里插入图片描述

    MainActivity.java页面,这个页面相当于我们的主视图。
    res文件夹是资源文件的配置文件。
    文件夹里面有 layout 用来存放布局文件。
    以上就是基本用到的文件,而如果此时项目没有报错,那么直接运行便会可以显示hello world,应用已经发布到了模拟器上。
    在这里插入图片描述
    如图,我们运行成功了。模拟器和普通手机很类似,可以实现很多功能。大家可以自行尝试。

    开始添加组件

    我们添加组件的操作是在activity_main.xml上通过拖动完成的
    在这里插入图片描述
    最左下角的design视图里,我们能通过拖动左边的组件,放在右边的界面上。Text页面是组件的代码,我们可以在text页面修改组件的参数。
    而拖动后可能会报错,如下图
    在这里插入图片描述
    只需要在右侧布局中点击组件周围的加号,给它固定位置即可
    在这里插入图片描述

    点击按钮响应

    我们可以向页面中拖入button,自然需要点击按钮时还有一定的响应。
    这就需要在activity_main.xml里的代码页面(Text)进行修改。

    <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="157dp"
            android:layout_marginLeft="157dp"
            android:layout_marginTop="218dp"
            android:text="Button"
    
            android:onClick="test"
    
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    

    我们只是添加了一句点击响应。点击时,调用test方法
    test方法是需要我们在 MainActivity.java 中自己定义的。

     public void test(View view){
            //View 表示把点击的对象引用传进来
            Toast.makeText(MainActivity.this,"点击了button",Toast.LENGTH_SHORT).show();
        }
    

    在类中添加如上方法,中间的参数分别表示绑定的对象,提示的信息和显示的时间长短。
    这样,我们就可以在点击按钮以后有一个小的提示出现。

    在这里插入图片描述

    点击修改组件信息

    如果要实现点击按钮后,对文字内容进行修改,我们首先需要找到文字内容的位置,类似于js中,我们可以在test方法中这样写。

     public void test(View view){
            //View 表示把点击的对象引用传进来
            TextView textView =findViewById(R.id.textView);
            textView.setText("内容被修改了");
            Toast.makeText(MainActivity.this,"点击了button",Toast.LENGTH_SHORT).show();
        }
    

    在这里插入图片描述
    (组件必须有id值才能被找到,所以记得看看要修改的组件id是什么,例如:android:id="@+id/textView")

    自定义string

    在values文件下我们可以看到有strings.xml,里面可以添加定义的字符串。

    <resources>
        <string name="app_name">My Application</string>
    
        <string name="st1">this is your word</string>>
    </resources>
    

    此时我们的test方法可以更改为这样,来使显示的文字变成我们提前定义好的st1。

    public void test(View view){
            //View 表示把点击的对象引用传进来
            TextView textView =findViewById(R.id.textView);
            textView.setText(R.string.st1);
            Toast.makeText(MainActivity.this,"点击了button",Toast.LENGTH_SHORT).show();
        }
    

    这么定义,主要是为了使这个字符串被多次引用时,调用、修改更为方便。

    当然,string不仅可以在代码中引用,也可以在页面中引用。

    android:text="@string/st1"
    

    这一句可以使按钮的显示文字变成我们定义的string

    资源国际化

    在res目录下新建文件夹:values-zh-rCN
    里面复制一份string.xml

    <resources>
        <string name="app_name">我的应用</string>
    
        <string name="st1">这里是自定义的文字</string>>
    </resources>
    
    

    虽然资源没有发生改变,但是实际运行却发现里面的文字变成了中文。
    而我们可以在模拟器的设置应用中找到语言切换(其实就是手机中切换显示语言的操作)。

    DDMS的应用

    DDMS是Dalvik调试监控服务,可以实现很多有用的功能:例如监控后台日志、系统线程、虚拟机状态、堆信息、模拟发短信、打电话……
    能够把模拟器运行的信息显示出来,方便我们调试程序。
    如果我们在test方法里,添加一句

    System.out.println("hhhhhhhhhhh")
    

    那么点击按钮后就能看到在后台
    在这里插入图片描述
    其实我们正常打印信息是选择使用log函数

     Log.d("init","Debug级别运行");
     Log.i("execute","info级别运行了");
    

    运行如下图所示
    在这里插入图片描述
    当然,那六个打印优先级是依次递减的,verbose所有都会显示,而assert所有的都不会显示。

    模拟器好玩的东西

    在这里插入图片描述
    右边的工具栏都是可以用的,而最底下那三个点,点击以后会进入Extended Control界面,在这里我们可以控制给自己发短信,打电话。
    在这里插入图片描述
    这个界面还有很多好玩的东西,就需要大家自己寻找啦!

    项目打包

    我们安装一个写好的程序是需要.apk文件的,我们可以点击build->build bundle(s)/apk(s)->bulid apk(s)
    生成,
    在这里插入图片描述
    然后就能在项目里找到apk文件。
    而这样产生的apk不够安全,有可能被同名的软件覆盖掉。
    所以我们就需要使用签名。

    apk设置签名

    为了安全起见
    我们一般要导出签名的应用

    1. build->generate signed bundle or apk
    2. 然后选择第二个:选择APK
    3. 创建一个新的密钥
    4. 配置密钥信息
    5. 选择release,勾选v2-apk签名
    6. 项目的release下便会有我们需要的apk文件
      在这里插入图片描述

    反编译小谈

    我们的apk文件实际上是一个压缩包,解压后可以看到我们项目经过处理后的文件。
    其中classes.dexresources.arsc文件是之前文件内容的集中和r类的集中。
    而反编译就是将这两个文件重新转化为之前文件的过程。

    反编译使用的软件:dex2jar和JD-GUI
    将需要反编译的文件拖进dex2jar的目录下,用cmd命令在目录下执行 dex2jar.bat 文件名(例如:dex2jar.bat classes.dex)
    然后会生成一个jar包

    用jd—gui.exe打开生成的jar包,我们就能看到可读的信息,也可以进行导出等操作。

    看到这里啦!制作不易,请点个赞再走吧!!!

    展开全文
  • Android入门介绍PPT与源码.zip
  • Android驱动视频的语言部分,定位是、高效,学完这十多节视频就能掌握Android开发所需的c++知识,C++入门知识视频教程,涵盖C++入门所需的所有知识点。
  • 深入浅出android入门开发入门教程
  • android入门

    2012-12-20 18:55:16
    android入门数独等游戏
  • Android入门实战——做一个健康饮食搭配APP

    千次阅读 多人点赞 2021-08-10 20:20:13
    六、源码下载 点击右侧链接,即可下载源码:健康饮食搭配APP 还可以关注我的公众号,后台回复:饮食搭配 这有你错过的精彩内容 ❤️Android入门实战——历史上的今天❤️ ❤️Android Stduio实现一个天气预报APP❤...

    一、项目概述

    本次项目主要实现了一款实用的饮食搭配系统,有欢迎界面、引导界面和使用界面,其中引导界面只会在第一次使用app时候出现,符合用户使用习惯。使用界面有三个选项卡:食物搭配表、食物营养表、关于本软件。

    • 【食物搭配表】是以列表形式显示食物的信息,点击进去可以查看详情,可以进行搜索和刷新;
    • 【食物营养表】是以网格列表展示食物的信息,点进去也可以查看食物的详情;
    • 【关于本软件】是有关软件的开发信息,包括版本号、联系电话、公司地址等,最上层有轮播图,还可以分享软件。

    二、开发环境

    在这里插入图片描述

    三、项目结构

    1. bean包里面是食物的工具类,FoodUtils里面是食物的数据,FoodBean里面是食物的各个属性的get和set方法以及构造方法。

    2. food_grid包是网格列表,FoodGridActivity是显示网格列表的主活动,FoodGridAdapter是适配器,用来让FoodGridActivity显示Utils里面的数据,FoodDescActivity就是食物的详情活动。

    3. food_list包是条目列表,InfoListActivity是列表活动,InfoListAdapter是适配器,用来让InfoListActivity显示食物数据。

    4. guide包是引导包,里面GuideActivity显示引导界面,GuideAdapter是适配器,负责让GuideActivity显示三个可以滑动的界面。MainActivity就是整个项目的主文件,默认显示菜单界面。

    5. AboutActivity和AboutAdapter一起组成关于界面,形成轮播图效果。

    6. HomeMenuActivity就是应用默认显示的主菜单界面。

    在这里插入图片描述

    四、项目演示

    1、启动模拟器运行项目,进入应用的【欢迎】界面,右上角会显示倒计时五秒钟,这是参考现在很多app的广告欢迎界面
    在这里插入图片描述
    2、倒计时结束后,进入【引导】界面,这个界面只会在第一次打开应用时候出现,以后都不会出现,这样的设计就很人性化。
    在这里插入图片描述
    3、在【引导】界面中,下面有三个页号,默认白色显示,当前显示的页面对应的页号会变红,三张页面可以手动拖动,比如现在拖动到第二页,页号2就显示红色。
    在这里插入图片描述
    4、当拖到最后一页时候,会弹出【立即进入】按钮,点击就会进入应用了
    在这里插入图片描述
    5、进入应用后会进入主界面,主界面有三个选项卡:【食物搭配表】、【食物营养表】、【关于本软件】,一起来看看吧。
    在这里插入图片描述
    6、进入【食物搭配表】界面,可以看到有各种食物的列表,类似我们之前讲过的购物商城界面,最上面是搜索框,右边是一个搜索按钮和一个刷新按钮。
    在这里插入图片描述
    7、输入“猪”,然后点击【搜索】按钮,出现关键字搜索结果
    在这里插入图片描述
    8、当你删除输入内容后,点【搜索】按钮,会弹出提示信息
    在这里插入图片描述
    9、点击【刷新】按钮,搜索框清空,列表又重新显示出来了
    在这里插入图片描述
    10、点击任一食品,这里我们点击鸡蛋,跳转到【食品详情】页面,上面有食品介绍、不能同食的食品,点击【返回】按钮可以返回上一界面。
    在这里插入图片描述
    11、选择【事物营养表】,会进入网格图界面,这里也可以选择任一食品查看详情
    在这里插入图片描述
    12、我们选择“羊肉”,进入详情页面,然后点【返回】按钮返回
    在这里插入图片描述
    13、我们进入最后一个选项卡【关于本软件】,映入眼帘的就是轮播图,一共五张,每隔5秒切换一次,循环播放,当前显示的图下面的点会变红,也可以自己手动滑动
    在这里插入图片描述
    14、点击分享软件,会弹出分享应用选择
    在这里插入图片描述

    五、项目总结

    这次的饮食搭配APP是非常好的基础入门项目,涉及到很多控件和布局,还有页面跳转、适配器和列表,里面的代码逻辑也很有技巧,值得反复揣摩,方便以后开发APP。和学习一门语言一样,Android也是要多敲多练,自然而然就会了,坚持就会有收获。

    六、源码下载

    点击右侧链接,即可下载源码:👉健康饮食搭配APP👈

    🍉还可以关注我的公众号,🍍后台回复:饮食搭配
    在这里插入图片描述

    🚀这有你错过的精彩内容

    也许某天你一定会认同这句话:有的人因为太重要,便选择做朋友,因为朋友永远比恋人走的远。

    展开全文
  • ANDROID入门到精通

    2017-11-09 12:20:17
    孙更新、邵长恒和宾晟等编著的《Android入门到精通》注重实际动手能力的培养,在遵循技术研发知识体系的严密性的同时,在容易产生错误、不易理解的环节配上翔实的开发实例呈现给读者。每一个实例都经过精心挑选,...
  • android入门教程.ppt

    热门讨论 2012-05-31 14:21:32
    这是个android入门教程即使你之前没接触过Android相信多练习里面的例子,举一反三让你更加了解Android 开发的基础。
  • Android开发者网站教程集合,快速入门及扫盲专用
  • 教程名称: Android开发入门资料之基础宝典【】Android中文帮助文档【】Android新手入门 FAQ【】Android系统原理与开发要点详解【技术文档】【】android系统简介【】Linux开发Android系统基础知识大汇总【】...
  • android入门学习资料

    2015-07-24 17:48:30
    android入门学习资料,从网上搜集整理的,日语系统下压缩的,文件名可能会乱码
  • Android Studio入门到精通资料.txt

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 141,468
精华内容 56,587
关键字:

android入门