您的位置:首页 > 移动开发 > Android开发

android学习笔记(1)--7.20

2014-07-20 10:05 731 查看
  开始学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 横竖屏的切换 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 个人笔记