当前位置:  编程技术>移动开发
本页文章导读:
    ▪wp7开发札记(2)        wp7开发笔记(2) 学习提示:在学习开发前你需要获得微软开发中帐号可以查看本篇文档,《wp7(windows phone 7 )开发者帐号注册,dreamspark注册,edu.cn节约99刀》(http://kwor.blog.163.com/blog/static/.........
    ▪ View的惯用方法        View的常用方法: onFinishInflate() 当View中所有的子控件 均被映射成xml后触发onMeasure(int, int) 确定所有子元素的大小onLayout(boolean, int, int, int, int) 当View分配所有的子元素的大小和位置时触发onSizeChan.........
    ▪ andriod的apk资料相关的编译反编译工具       andriod的apk文件相关的编译反编译工具 1、smali-1.2.6.jar 用途:.smali文件 转成 classes.dex文件 说明:.smali文件,类似于.class文件,可以用普通文本编辑器查看和修改。 用法举例:命令行:java -jar.........

[1]wp7开发札记(2)
    来源: 互联网  发布时间: 2014-02-18
wp7开发笔记(2)

学习提示:在学习开发前你需要获得微软开发中帐号可以查看本篇文档,《wp7(windows phone 7 )开发者帐号注册,dreamspark注册,edu.cn节约99刀》(http://kwor.blog.163.com/blog/static/1296224112011616503319/)

你要是图省事可以查看这个连接,是销售注册好的yallaapps.com帐号的,(http://item.taobao.com/item.htm?id=12278992414)

下面我们开始学习了。

1.今天创建一个项目,做个hello word的例子,首先点击

创建项目。上文中提到的6个项目类型,我们选择第一个。

单击ok创建。

这时我们将看到,项目的界面

大致结构如图。当然第一次可能没有属性一栏,你需要按下图选择并显示:

你可以单击手机界面的相应控件修改属性。

下面我们添加一个textblock(相当于asp.net开发中的label)和一个button.开始hello word的创建:

并修改2个控件的属性(这里不解释,如果你起码的asp.net开发经验都没有的话,可以先学习下asp.net开发了解一些基础知识,在回来继续)这里有2中属性的修改方式,一个直接在属性窗口修改,一个是直接修改layout文件(或叫做布局文件)就是黑色的手机界面边上的类似xml文件的那块(如果你没看到对应的布局文件你可以在黑色界面右击鼠标选择 view XAML 选项)。

我们修改布局文件中Button的Content值为“GetHello”:

返回黑色界面,效果如图,

2.双击Button,编写代码如图:

3.F5运行程序,稍等片刻出现这个界面:

单击Button.出现变化:

简单的hello word完成了。

下一集我们将加入真正的Wp7开发学习。前面的只是了解,精彩的在后面


    
[2] View的惯用方法
    来源: 互联网  发布时间: 2014-02-18
View的常用方法:


onFinishInflate() 当View中所有的子控件 均被映射成xml后触发

onMeasure(int, int) 确定所有子元素的大小

onLayout(boolean, int, int, int, int) 当View分配所有的子元素的大小和位置时触发

onSizeChanged(int, int, int, int) 当view的大小发生变化时触发

onDraw(Canvas) view渲染内容的细节

onKeyDown(int, KeyEvent) 有按键按下后触发

onKeyUp(int, KeyEvent) 有按键按下后弹起时触发

onTrackballEvent(MotionEvent) 轨迹球事件

onTouchEvent(MotionEvent) 触屏事件

onFocusChanged(boolean, int, Rect) 当View获取 或失去焦点时触发

onWindowFocusChanged(boolean) 当窗口包含的view获取或失去焦点时触发

onAttachedToWindow() 当view被附着到一个窗口时触发

onDetachedFromWindow() 当view离开附着的窗口时触发,Android123提示该方法和  onAttachedToWindow() 是相反的。

onWindowVisibilityChanged(int) 当窗口中包含的可见的view发生变化时触发

  以上是View实现的一些基本接口的回调方法,一般我们需要处理画布的显示时,重写onDraw(Canvas)用的的是最多的:

view plaincopy to clipboardprint?
01.  @Override 
02.  protected void onDraw(Canvas canvas) {  
03.    //这里我们直接使用canvas对象处理当前的画布,比如说使用Paint来选择要填充的颜色  
04.  Paint paintBackground = new Paint();  
05.  paintBackground.setColor(getResources().getColor(R.color.xxx));  //从Res中找到名为xxx的color颜色定义  
06.  canvas.drawRect(0, 0, getWidth(), getHeight(), paintBackground); //设置当前画布的背景颜色为paintBackground中定义的颜色,以0,0作为为起点,以当前画布的宽度和高度为重点即整块画布来填充,具体的请查看Android123未来讲到的Canvas和Paint,在Canvas中我们可以实现画路径,图形,区域,线。而Paint作为绘画方式的对象可以设置颜色,大小,甚至字体的类型等等。  
07.} 
  @Override
  protected void onDraw(Canvas canvas) {
    //这里我们直接使用canvas对象处理当前的画布,比如说使用Paint来选择要填充的颜色
  Paint paintBackground = new Paint();
  paintBackground.setColor(getResources().getColor(R.color.xxx));  //从Res中找到名为xxx的color颜色定义
  canvas.drawRect(0, 0, getWidth(), getHeight(), paintBackground); //设置当前画布的背景颜色为paintBackground中定义的颜色,以0,0作为为起点,以当前画布的宽度和高度为重点即整块画布来填充,具体的请查看Android123未来讲到的Canvas和Paint,在Canvas中我们可以实现画路径,图形,区域,线。而Paint作为绘画方式的对象可以设置颜色,大小,甚至字体的类型等等。
}

当然还有就是处理窗口还原状态问题(一般用于横竖屏切换),除了在Activity中可以调用外,开发游戏时我们尽量在View中使用类似

view plaincopy to clipboardprint?
01.@Override 
02.  protected Parcelable onSaveInstanceState() {  
03.      Parcelable p = super.onSaveInstanceState();  
04.      Bundle bundle = new Bundle();  
05.      bundle.putInt("x", pX);  
06.      bundle.putInt("y", pY);  
07.      bundle.putParcelable("android123_state", p);  
08.      return bundle;  
09.  }  
10.  @Override 
11.  protected void onRestoreInstanceState(Parcelable state) {   
12.      Bundle bundle = (Bundle) state;  
13.      dosomething(bundle.getInt("x"), bundle.getInt("y")); //获取刚才存储的x和y信息  
14.      super.onRestoreInstanceState(bundle.getParcelable("android123_state"));  
15.      return;  
16.  } 

    
[3] andriod的apk资料相关的编译反编译工具
    来源: 互联网  发布时间: 2014-02-18
andriod的apk文件相关的编译反编译工具

1、smali-1.2.6.jar

用途:.smali文件 转成 classes.dex文件

说明:.smali文件,类似于.class文件,可以用普通文本编辑器查看和修改。

用法举例:命令行:java -jar smali.jar classout/ -o classes.dex

下载:http://code.google.com/p/smali/downloads/list

 

2、baksmali-1.2.6.jar

用途:classes.dex文件 转成 .smali文件

说明:classes.dex不便于查看和理解,使用此工具转成的.smali文件易于阅读和修改。

用法:命令行:java -jar baksmali.jar -o classout/ classes.dex

下载:http://code.google.com/p/smali/downloads/list

 

3、AXMLPrinter2.jar

用途:xml文件 转成 普通文本文件(txt)

说明:apk中的xml文件被搞成二进制了,无法阅读,使用此工具转换后,可以查看正常的xml文件。

用法举例:命令行:java -jar AXMLPrinter2.jar main.xml > main.txt

下载:http://code.google.com/p/android4me/downloads/list

 

学习了楼下dohkoos兄弟的总结,我也大概再总结一下:

1、dexdump

 

androidSDK提供的反编译工具dexdump.exe,将dex文件反编译为较易理解的文本文件。

位于路径:\android\sdk\android-sdk-windows\platform-tools

用法:

dexdump: [-c] [-d] [-f] [-h] [-i] [-l layout] [-m] [-t tempfile] dexfile...

 

 -c : verify checksum and exit

 -d : disassemble code sections

 -f : display summary information from file header

 -h : display file header details

 -i : ignore checksum failures

 -l : output layout, either 'plain' or 'xml'

 -m : dump register maps (and nothing else)

 -t : temp file name (defaults to /sdcard/dex-temp-*)

 

例子:dexdump classes.dex >dexdump.txt

2、Dedexer

 

使用工具ddx1.11.jar来进行反编译dex,一般可读性比dexdump工具能强点,但还是不好理解。

用法:

Usage: java -jar ddx.jar -o -D -r -d <destination directory> <source>

       <destination directory> is where the generated files will be placed.

       <source> is the name of the source DEX file.

       -D - if present, more detailed error report is printed in case of failure

.

       -o - if present, detailed log file will be created about the input DEX fi

le (dex.log).

       -r - if present, register trace will be emitted after each instruction

       -e <deps> - if present, the <deps> directory is supposed to contain depen

dencies necessary for ODEX disassembly. Read the manual for details.

 

例子:

java -jar ddx1.11.jar -o -D -r -d src classes.dex //在src目录下生成ddx文件  

3、AXMLPrinter2 

 

查看apk中的XML资源文件,因为xml都被压缩成bytecode了,所以使用此工具帮助查看。

用法:

java -jar AXMLPrinter2.jar AndroidManifest.xml > out.xml

4、apktool

dohkoos兄弟对这个讲了不少了。能反编译,也能编译,能看class,也能看xml资源,是个不错的工具。这里推荐一个此工具的下载说明地址。

http://bbs.gfan.com/thread-971865-1-1.html

 

5、dex2jar

 

将apk或者dex转化为可以用gui查看的class文件。此种貌似很强大。

下载地址:http://code.google.com/p/dex2jar/downloads/list

 

6、smali和baksmali

类似于apktool生成的smali文件。此两个工具,smali编译,baksmali反编译。

 

 

最后再上一张自己总结的excel,这个应该比较直观,总结的不太好,凑和着理解吧,截个图上来:

 

 

 

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3