博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android笔记
阅读量:5331 次
发布时间:2019-06-14

本文共 4718 字,大约阅读时间需要 15 分钟。

想了解一下Android逆向,但又没有过Android的开发经验,所以从慕课网上找了一个视频,做了一点笔记,有点乱:

 

Android项目结构

几点说明:

0.AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试)

1.界面布局文件一般在res(文件夹)下的layout(文件夹)下面的(xml文件)进行编辑 。

2.xml文件与java源文件进行关联是通过下面方法实现的: 

setContentView(R.layout.activity_main);//将布局的main_activity.xml文件引入到activity当中

3.xml文件里面的数字、字符串一般都是写在values文件下的一个文件(相当于在values文件夹下的XXX.xml里起个  “别名”),xml只需用“@XXX/别名 ”引用。

4.res文件夹下面的所有的资源都会对应在gen(文件夹)目录下的R(.java)文件中生成对应的资源id(唯一标识数据的)

5.Activity是一个应用程序组件,提供用户与程序交互的界面,Activity的创建要求:

 继承Android的Activity类;

 重写方法(onCreate);

 设置显示布局;

 在AndroidManifest文件中,注册Activity。即:在AndroidManifest.xml文件的标签activity里面的android:name="包(Activity所在包)名.Activity的名字",见下图。

 

6.Button与ImageButton区别:

   Button可以设置文本内容的按钮

   ImageButton不可设置内容的一个按钮,background以及src添加一个image,当前图片可以做一个有文本的内容的图片实现Button。

7.所有控件都有一个onclick的事件,不仅仅是Button和ImageButton。

监听事件实现的3种写法:(原理见名知意,下面分别有按视频抄写的“啰嗦”代码)

(1.匿名内部类的实现

public class MainActivity extends Activity{    private Button loginButton;    protected void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    /*     * 1.初始化当前所需要的控件,如歌初始化一个控件?     * findViewById---返回的是一个View的对象,View是所有控件的父类     * findViewByIdshi 如何查找到对应view的id? R.java里面的id类中会自动生成button1     *     * 2.设置Button的监听器,通过监听器实现我们点击Button要操作的事情     */           loginButton =(Button) findViewById(R.id.button1)        /*         * 1.监听事件通过第一种方法实现(匿名内部类)         */        loginButton.setOnClickListener(new OnClickListener(){             public void onClick(View arg0){            //在当前onClick方法中监听点击Button的动作            System.out.printIn("我的Button被点击了");            }        });            }}
View Code

(2.独立类的实现

public class MainActivity extends Activity{    private Button bt1;    private Button bt2;    protected void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                bt1=(Button)findViewById(R.id.button1);        bt1=(Button)findViewById(R.id.button2);                // bt1.setOnClickListener(new OnClickListener(){                        // public void onClick(View v){                            // }        // });                /*         *点击事件的外部类的写法和作用         */        bt1.setOnClickListener(new MyOnClickListener(){         public void onClick(View v){            //调用父类的onClick            super.onClick(v);            Toast.makeText(MainActivity.this,"bt1要执行的逻辑",1).show();            }        });            bt2.setOnClickListener(new MyOnClickListener(){         public void onClick(View v){            //调用父类的onClick            super.onClick(v);            Toast.makeText(MainActivity.this,"bt2要执行的逻辑",1).show();            }        });    }}/* * OnClickListener是一个接口 */class MyOnClickListener implements OnClickListener{    public void onClick(View v){         //让所有使用当前外部类的点击事件的按钮都要做出一个动作,改变button的透明度         //Log.i("tag","父类的onclick事件");         v.setAlpha(0.5f);    }}
View Code

(3.实现接口的方式来实现

public class MainActivity extends Activity implements OnClickListener{    private Button bt1;    private Button bt2;    private ImageButton imgBt;    protected void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                bt1=(Button)findViewById(R.id.button1);        bt1=(Button)findViewById(R.id.button2);        imgBt=(Button)findViewById(R.id.imageButton1);        // bt1.setOnClickListener(new OnClickListener(){                        // public void onClick(View v){                            // }        // });                /*         *点击事件的外部类的写法和作用         */        bt1.setOnClickListener(new MyOnClickListener(){         public void onClick(View v){            //调用父类的onClick            super.onClick(v);            Toast.makeText(MainActivity.this,"bt1要执行的逻辑",1).show();            }        });            bt2.setOnClickListener(new MyOnClickListener(){         public void onClick(View v){            //调用父类的onClick            super.onClick(v);            Toast.makeText(MainActivity.this,"bt2要执行的逻辑",1).show();            }        });    }}   /*     * 3.通过实现一个接口的方式实现监听器     */     imgBt.setOnClickListener(this);/* * OnClickListener是一个接口 */class MyOnClickListener implements OnClickListener{    public void onClick(View v){         //让所有使用当前外部类的点击事件的按钮都要做出一个动作,改变button的透明度         //Log.i("tag","父类的onclick事件");         v.setAlpha(0.5f);             }    public void onClick(View v){        Log.i("tag","第三种方式实现");    }}
View Code

 

转载于:https://www.cnblogs.com/pursuitofacm/p/6734955.html

你可能感兴趣的文章
YUI3自动加载树实现
查看>>
python知识思维导图
查看>>
当心JavaScript奇葩的逗号表达式
查看>>
App Store最新审核指南(2015年3月更新版)
查看>>
织梦MIP文章内容页图片适配百度MIP规范
查看>>
[Kali_BT]通过低版本SerialPort蓝牙渗透功能手机
查看>>
C语言学习总结(三) 复杂类型
查看>>
HNOI2018
查看>>
【理财】关于理财的网站
查看>>
Ubunt中文乱码
查看>>
《当幸福来敲门》读后
查看>>
【转】系统无法进入睡眠模式解决办法
查看>>
省市县,循环组装,整合大数组
查看>>
stm32中字节对齐问题(__align(n),__packed用法)
查看>>
like tp
查看>>
posix多线程有感--线程高级编程(线程属性函数总结)(代码)
查看>>
spring-使用MyEcilpse创建demo
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>
activity 保存数据
查看>>