android学习笔记(1)--7.20

  开始学android开发了,今天应该算是第二天,昨天同学聚餐,晚上就懒得写笔记了,今天补上。


  工欲善其事必先利其器,先下个ADT+jdk,安完ADT,配好环境变量,打开SDK Manager.exe,第一步工具栏中tools->options中勾选force https...  ,第二步找到你的hosts(我的路径C:\Windows\System32\drivers\etc)

添加


74.125.113.121 developer.android.com 
203.208.46.146 dl.google.com 
203.208.46.146 dl-ssl.google.com


然后通过SDK Manager.exe下载你所需的东西,android 2.3   android 4.2 这是我下的东东。


好久没看java了快2年了,不得不说有些忘了


昨天用的快捷键或一些小方法

alt+/  提示
Ctrl+1 快速修复
ctrl+/ 注释
ctrl+shift+o  导包
Ctrl+Shift+P 转至匹配的括号
按住ctrl单击方法可以跳走
/**+回车 文档注释
ctrl+T 继承关系
ctrl+D 删除一行


<activity
            android:name="com.fs.firstproject.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
		
		
		
		
 <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>   有这个节点表示第一个启动的activity		
			
			


android程序运行先访问AndroidManifest.xml文件  <uses-permission android:name="android.permission.CALL_PHONE"/>  添加打电话的权限


<Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"  //wrap_content  按内容大小    match_parent  匹配父节点   fill_parent  填充父节点
        android:layout_below="@id/phoneNumberEditText" 
        android:text="@string/call"   //ctrl+1
        android:onClick="callNumber"    // 添加click事件
        />
	
	
	<EditText
        android:id="@+id/phoneNumberEditText"  //@表示R文件  在R文件的id中加入phoneNumberEditText
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:inputType="phone"        //只能输入手机号
        android:layout_below="@id/title"/>

两种响应点击事件的方式

第一种:

android:onClick="callNumber"    // 添加click事件

 public void callNumber(View v) {
	
		EditText edittext= (EditText) findViewById(R.id.phoneNumberEditText);//通过id找view组件
		
		String number=edittext.getText().toString();
		
		
		Intent intent=new Intent();// 新建一个意图
		
		intent.setAction(Intent.ACTION_CALL); //做什么
		
		intent.setData(Uri.parse("tel:"+number));//传数据
		
		startActivity(intent);//开始意图
		
		
	
	}

(EditText) findViewById(R.id.phoneNumberEditText);//通过id找view组件

findViewById是在当前设置的View中找对象       setContentView(R.layout.activity_main_ui);


所以如果你是在Fragment中写的控件那么

public static class PlaceholderFragment extends Fragment {

		public PlaceholderFragment() {
		}

		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container,
				Bundle savedInstanceState) {
			View rootView = inflater.inflate(R.layout.fragment_main_ui,
					container, false);//把xml装载到程序中
			
			
			Button btn = (Button) rootView.findViewById(R.id.btn_Call);

			if (btn != null) {
				btn.setOnClickListener(new OnClickListener() {

					@Override
					public void onClick(View arg0) {
						// TODO Auto-generated method stub
						Intent intent=new Intent();
						
						intent.setAction(Intent.ACTION_CALL);
						
						intent.setData(Uri.parse("tel:"+10086));
						
						startActivity(intent);
					}
				});
			}
			
			
			return rootView;
		}
	}

}


if (savedInstanceState == null) {
			getSupportFragmentManager().beginTransaction()
					.add(R.id.container, new PlaceholderFragment()).commit();
		}


一定要到对应的view中寻找。






在真机上调试,如果嫌装驱动麻烦安个豌豆荚自动装驱动, 就可以在手机上调试程序了。





两种sleep方式

SystemClock.sleep(1000);  //不用捕获异常
	
	
	try {
		Thread.sleep(1000);
	} catch (InterruptedException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}


使用线程和发短信

new Thread(new Runnable() {
	public void run() {
	SmsManager sms=	SmsManager.getDefault(); //短信管理器
	
	
	SystemClock.sleep(1000);
	
	
	try {
		Thread.sleep(1000);
	} catch (InterruptedException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	sms.sendTextMessage(
			"10086", //收件人号码
			null, // 短信中心号码
			"内容", //内容 
			null, //发送成功,回调此广播,通知我们
			null); //对方接受成功,回调此广播,通知我们
	}
}).start();;			


C:\Users\Administrator\.android\debug.keystore  传说中的签名


p.s 老师的笔记

工程目录结构:
src: 存放java代码
gen: 存放自动生成文件的. R.java 存放res文件夹下对应资源的id
project.properties: 指定当前工程采用的开发工具包的版本
libs: 当前工程所依赖的jar包.
assets: 放置一些程序所需要的媒体文件.
bin: 工程的编译目录. 存放一些编译时产生的临时文件和当前工程的.apk文件.
res(resources): 资源文件.
drawable: 存放程序所用的图片.
layout: 存放android的布局文件.
menu: 存放android的OptionsMenu菜单的布局.
values (应用程序所需要的数据. 会在R文件中生成id)
strings.xml 存放android字符串.
dimens.xml 存放屏幕适配所用到的尺寸.
style.xml 存放android下显示的样式.
values-sw600dp 7寸平板所对应的值
values-sw720dp-land 10寸平板所对应的值
values-v11 指定3.0版本以上的手机显示的样式.
values-v14 指定4.0版本以上的手机显示的样式.
AndroidManifest.xml: android应用程序的入口文件. 声明了android里边的组件. 和相关配置信息.
proguard-project.txt: 加密当前程序所使用.




打包安装过程(Run as Android Application ) :
1. 生成apk文件.
1). 生成.dex文件.
2). 资源索引表的生成resources.arsc.
3). 准备未编译文件.
4). 清单文件AndroidMenifest.xml文件转换成二进制.
5). 使用debug.keystore对整个应用程序进行打包签名.


2. 加载apk文件到模拟器中.
把apk文件加载到/data/local/tmp/xxx.apk


3. 安装应用程序.
1). 把/data/local/tmp/xxx.apk文件, 剪切/data/app/包名-1.apk
2). 在/data/data/文件夹下以包名创建一个文件夹, 用于存储当前程序的数据.
3). 在packages.xml和packages.list文件中分别添加一条记录.




adb常用命令

adb devices 列出所有的设备

adb start-server 开启adb服务

adb kill-server  关闭adb服务

adb logcat  查看Log

adb shell  挂载到Linux的空间

adb install<应用程序(加扩展名)>   安装应用程序

adb –s <模拟器名称>  install <应用程序(加扩展名)>  安装应用到指定模拟器

adb uninstall<程序包名>

adb pull<remote> <local>

adb push<local> <remote>

emulator –avd <模拟器名称>

ctrl + F11 横竖屏的切换 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值