当前位置:  编程技术>移动开发
本页文章导读:
    ▪教你java后台老板运行        教你java后台运行 希望对大家有帮助.我们知道JAVA手机程序(包括应用程序,游戏和电子书等等)都是由两个文件组成,一个是*.JAR,一个是*.JAD。JAR文件包含这个程序的Java类,以及有关的.........
    ▪ Notification的运用        Notification的使用 1. 建立一个notification 点击后可以返回一个参数给主程序final Notification notif = new Notification(R.drawable.icon, tickerText, System.currentTimeMillis());          final RemoteViews contentView = .........
    ▪ 设置Global Breakpoint定位异常代码所在位置       设置Global Breakpoint定位错误代码所在位置 调式程序的时候经常为了出了错误而不知道原因在哪头疼,可以通过设置XCode的Global Breakpoint快速定位错误代码的位置步骤一:Run–>Show–>Breakpoint.........

[1]教你java后台老板运行
    来源: 互联网  发布时间: 2014-02-18
教你java后台运行
希望对大家有帮助.我们知道JAVA手机程序(包括应用程序,游戏和电子书等等)都是由两个文件组成,一个是*.JAR,一个是*.JAD。


JAR文件包含这个程序的Java类,以及有关的其他文件诸如图像和应用程序数据(即通常所说的资源等信息)。JAR文件下的manifest.mf是描述JAR内容的清单文件,这也是跟我们玩家有关的信息,在这里重点介绍。至于其他的信息是程序开发者关心的,就不多说了。


manifest.mf文件所有可能的信息如下:

MIDlet-Name -----MIDlet程序包的名称。
MIDlet-Version -----MIDlet的版本号
MIDlet-Vendor -----MIDlet的创建者或提供商
MIDlet-Icon -----应用程序管理器把这个图标与 MIDlet-Name相关联,这是一个图形文件,以PNG图象格式储存。
MIDlet-Description -----描述MIDlet的文本
MIDlet-Info-URL -----可能提供更多MIDlet和/或供应商信息的URL


MIDlet- 这个属性包括三段信息:
MIDlet名称/用于这个MIDlet的图标(可选)/应用程序
管理器将调用来加载这个MIDlet的类名
MIDlet-Jar-URL -----JAR文件的URL
MIDlet-Jar-Size -----JAR文件的大小
MIDlet-Data-Size -----持久数据存储必需的最小字节数
MicroEdition-Profile -----MIDlet需要哪一种J2ME简表
MicroEdition-Configuration -----MIDlet需要哪一种J2ME配置


上面这些属性并不是全部都需要的,但是,下面列出的这六个是必须的,否则应用程序管理器就会拒绝加载这个JAR。


MIDlet-Version
MIDlet-Name
MIDlet-Vendor
MIDlet-
MicroEdition-Profile
MicroEdition-Configuration


下面我们讲解JAD文件:

有些程序是不需要这个文件的,这些程序在传送的过程中不需要修改JAR文件。但是目前大部分手机程序使用的是相对路径,传送以后需要修改JAR文件,所以必须得有JAD文件。


我们看到JAD的属性与manifest.mf文件里的属性是相同的,但是下面的属性必须要有,否则手机无法加载这个游戏:

MIDlet-Version
MIDlet-Name
MIDlet-Vendor
MIDlet-
MIDlet-Jar-URL
-----引用jar文件!
MIDlet-Jar-Size


这里要说明的是:除了这些属性以外,如果两个文件中的另外名称相同的属性,但是属性值不相同的,将优先采取应用程序描述器文件(JAD)属性!


我们看到上面有一个MIDlet-1属性,这个属性不是必须的,但是没有这个属性,在模拟器中将没有办法使用这个程序!因此,如果你的手机程序无法在模拟器中使用的话,可以添加一下这个属性,再试试看到底可不可以运行。


还要注意的几点是:

1。属性MIDlet-Name、MIDlet-Version和MIDlet-Vendor既在JAR中的清单文件中又在JAD文件中,这些属性的值都必须完全相同。

2。属性MIDlet-Data-Size在JAR文件和JAD文件中都有,当两个文件中都定义了这个属性的时候,程序运行时JAD文件中的属性将使用。

3。MIDP(Mobile Information Device Profile)移动信息设备简表,提供一种标准的运行时环境,允许在终端用户设备上动态地配置新的应用程序和服务。

MIDlet是遵照MIDP编写的java应用程序,MIDlet是定位于提供某种水平的网络连接性的移动设备。运行MIDlet的设备也有好几个共同的属性:有限的屏幕大小,内存和处理能力,这个规范是设计来满足这些需求,典型的设备包含行动电话和呼叫器。JAD文件修改后台在安装程序前用文本编辑器打开jad文件,在文件的末尾加上如下代码,我以一个游戏为例:


原jad文件如下:
Manifest-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MIDlet-Name: Gold Rush
Created-By: 1.5.0 _04 (Sun
Microsystems Inc.)
Ant-Version: Apache Ant 1.6.2
MIDlet-Vendor: wangshanbina
MIDlet-1: Gold Rush,/Icon.png,BinLifeMidlet
MIDlet-Version: 1.0
MicroEdition-Profile: MIDP-1.0
MIDlet-Jar-Size: 67307
MIDlet-Jar-URL: GoldRush_Loser008.jar


修改后的JAD文件如下:
Manifest-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MIDlet-Name: Gold Rush
Created-By: 1.5.0 _04 (Sun Microsystems Inc.)
Ant-Version: Apache Ant 1.6.2
MIDlet-Vendor: Loser008
MIDlet-1: Gold Rush,/Icon.png,BinLifeMidlet
MIDlet-Version: 1.0
MicroEdition-Profile: MIDP-1.0
MIDlet-Jar-Size: 67307
MIDlet-Jar-URL: GoldRush_Loser008.jar
Background: True
FlipInsensitive: True
MIDxlet-Resident: Y

请注意上段jad代码的部分,我们只要在jad文件的末尾加上


Background: True
FlipInsensitive: True
MIDxlet-Resident: Y


这三行代码就可以实现JAVA程序在后台运行!


如何实现在后台运行?打开JAVA程序后,按挂机键,会出现四个选项:
暂停
恢复
退出
在后台运行


选中最后一个,这样JAVA程序还是在运行状态,而不是暂停状态!

再次打开JAVA时,就会出现
暂停
恢复
退出
在后台运行
四个选项,也就说明,无法多开JAVA程序!


看完上面的内容后,相信大家都对jad有所了解吧.其实jad也是纯文本文件,只是后缀名不是txt,而是jad,所以就可以用手机来编辑jad文件.现在教大家在手机上制作jad文件.前提,手机要支持文件系统!!


首先,下个俄版opm.按菜单>打开>文件管理>进入other文件夹>菜单>操作>新建文件>输入 x.jad>确定>把光标移到刚建立的文件>菜单>打开>文本/UTF>菜单>编辑>输入以下()内的内容
(MIDlet-Name: 名称
MIDlet-Version: 0.0.0
MIDlet-Vendor: 提供商
MIDlet-Jar-URL: http://
MIDlet-Jar-Size: 0)

然后在相应的地方填上正确的信息>确定>菜单>保存页面.这就制成了最基本最简单的jad文件了.这样的jad文件对jar是没有任何修改的,只起到安装向导的作用.但只要再加入一些其他的命令,就能对jar稍作修改了,自己研究研究吧.

为了方便大家,我把上面()内的内容做成个模版,大家只要在这个模版的基础进行改进就能制作出所需的jad文件了,试试吧!
1 楼 ymmt 2010-09-10  
你好,我测试后并没有出现上面提到的四个选项,请问这些设置跟手机型号有关吗?是不是智能手机才可以呢?
2 楼 ming_fanglin 2010-09-13  
是j2me的手机
3 楼 ymmt 2010-09-13  
ming_fanglin 写道
是j2me的手机

j2me的手机是什么样的手机? 支持java的手机就是吗?
4 楼 zhhaogen 2010-09-30  
不是display.setcurrent(null)可以了吗?
5 楼 鸟哥哥 2010-10-10  
挂电话那个键
手机不一样面不一样的,像e398,有几个提示。n73好像是直接退出了,按菜单键就是在后台运行。
此外,jad的这些配置并不是万能的,还是得看真机。
真机移植的事,烦的要死。现在搞android好办很多

    
[2] Notification的运用
    来源: 互联网  发布时间: 2014-02-18
Notification的使用
1. 建立一个notification 点击后可以返回一个参数给主程序
final Notification notif = new Notification(R.drawable.icon, tickerText, System.currentTimeMillis());
          final RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.custom_notification_layout);
          contentView.setImageViewResource(R.id.image, R.drawable.icon);
           contentView.setTextViewText(R.id.text, tickerText);        \
           contentView.setProgressBar(R.id.progress,100,0, false);      
            notif.contentView = contentView;                       
            Intent notificationIntent = new Intent(context, Main.class);      
            notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);             notificationIntent.putExtra("item_id", "1001"); // <-- HERE I PUT THE EXTRA VALUE
             PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
            notif.contentIntent = contentIntent;   
            nm.notify(id, notif);

2.一个简单应用
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);



int icon = R.drawable.msn;

CharSequence tickerText = "HelloNotfication";

long when = System.currentTimeMillis();

Notification notification = new Notification(icon, tickerText, when);;

notification.defaults=Notification.DEFAULT_SOUND;



//to definition some vale in Expanded view

CharSequence contentTitle = "Notification's title @ Expanded view"; // expanded message title

CharSequence contentText = "Notification's text @ Expanded view"; // expanded message text

//to definition an Intent that this Notification listener in Expanded view via clicked action

Intent notificationIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel://110"));

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

notification.setLatestEventInfo(this, contentTitle, contentText, contentIntent);





// to customize its Expanded view via XML file

//RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification_layout);

//contentView.setImageViewResource(R.id.image, R.drawable.msn);

// to specific the text in Expanded view

//contentView.setTextViewText(R.id.text, "Hello, this is Expanded view with custom XML");

//notification.contentView = contentView;





manager.notify(1, notification);

注意 使用notification.contentView 会覆盖掉
notification.setLatestEventInfo(this, contentTitle, contentText, contentIntent)第二个和第三个参数
第四个参数
notification.contentIntent = PendingIntent.getActivity(mContext, 0,                                                     createIntent(Sipdroid.class), 0);

    
[3] 设置Global Breakpoint定位异常代码所在位置
    来源: 互联网  发布时间: 2014-02-18
设置Global Breakpoint定位错误代码所在位置
调式程序的时候经常为了出了错误而不知道原因在哪头疼,可以通过设置XCode的Global Breakpoint快速定位错误代码的位置
步骤一:
Run–>Show–>Breakpoints,进入断点窗口




步骤二:
为-[NSException raise]设置断点
选择Global Breakpoints, 双击Double-click for Symbol, 输入-[NSException raise],然后按回车。




步骤三:
按照上面的步骤添加objc_exception_throw

以上步骤做完,程序出错的时候就可以定位到问题代码了

当程序出现问题时打开Debugger画面:



点击控制台左边那个按钮,或Run->Debugger会出现如下画面:




在左上角的窗口下出错的方法会加黑,如-[PlayGameViewController gameloop]
单击加黑的方法,程序就回跳转到出错的位置

    
最新技术文章:
▪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