android学习笔记(1)--7.20

来源:互联网 发布:mallat算法 编辑:程序博客网 时间:2024/06/04 00:57

  开始学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() {}@Overridepublic 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() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubIntent 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 blocke.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 blocke.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