- 浏览: 167045 次
- 性别:
- 来自: 北京
最新评论
-
温婉柳叶眉:
可以的,测试了。
使用观察者模式完美实现android程序退出 -
crackpot:
真的挺方便的啊
使用框架编写Android程序 -
lehehe:
定位的话,现在用接口不很方便吗?http://www.haos ...
android手机基站定位 -
u013061116:
连你自己都调试不出来的玩意
Android网络收音机项目 -
xuminliang:
能否给广告滚动条添加事件监听呢,如何添加呢,我试着用一般的给控 ...
Android 广告滚动条实现
AndroidAnnotations这个开源项目为android程序的编写提供了一个新的思路,他们自己称之为框架,我觉得很像struts2的注解方式,下面是这个项目在github上面的地址
https://github.com/excilys/androidannotations
下面的代码是一个例子
这个项目的好处是使用到了IOC模式,代码量小而且简洁,使程序员更多的关注于业务逻辑而不是页面,而且@Backgroud这个标签下开启的线程在线程池中管理。
类似的项目还有Android Binding,RoboGuice等,有兴趣可以看一下这个文章
CLEAN CODE IN ANDROID APPLICATIONS一个Spring gay写得,很不错哦~
http://blog.springsource.com/2011/08/26/clean-code-with-android/
我记得github里面好像有demo
https://github.com/excilys/androidannotations
下面的代码是一个例子
package com.googlecode.androidannotations.helloworldeclipse; import java.util.Date; import java.util.concurrent.TimeUnit; import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.googlecode.androidannotations.annotations.Background; import com.googlecode.androidannotations.annotations.Click; import com.googlecode.androidannotations.annotations.EActivity; import com.googlecode.androidannotations.annotations.LongClick; import com.googlecode.androidannotations.annotations.SystemService; import com.googlecode.androidannotations.annotations.Touch; import com.googlecode.androidannotations.annotations.Transactional; import com.googlecode.androidannotations.annotations.UiThread; import com.googlecode.androidannotations.annotations.ViewById; import com.googlecode.androidannotations.annotations.res.BooleanRes; import com.googlecode.androidannotations.annotations.res.ColorRes; import com.googlecode.androidannotations.annotations.res.StringRes; @EActivity(R.layout.my_activity) //布局文件在这里声明,不用在setContentView public class MyActivity extends Activity { @ViewById //控件这样标注,由于是IOC模式,因此不需要自己实例化 EditText myEditText; @ViewById(R.id.myTextView) //提供id来生成控件,如果不指定ID,默认以控件名进行查找,如上面的myEditText TextView textView; @StringRes(R.string.hello) //资源 String helloFormat; @ColorRes int androidColor; @BooleanRes boolean someBoolean; @SystemService NotificationManager notificationManager; @SystemService WindowManager windowManager; /** * AndroidAnnotations gracefully handles support for onBackPressed, whether * you use ECLAIR (2.0), or pre ECLAIR android version. */ public void onBackPressed() { Toast.makeText(this, "Back key pressed!", Toast.LENGTH_SHORT).show(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // windowManager should not be null windowManager.getDefaultDisplay(); requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); } @Click //事件控制,可以以按钮的id作为方法名,同时支持的事件还有onLongClick,onTextChange等 void myButtonClicked() { String name = myEditText.getText().toString(); setProgressBarIndeterminateVisibility(true); someBackgroundWork(name, 5); } @Background //开启新线程后台运行,注意不要引用UI控件,而且返回值类型一定是void void someBackgroundWork(String name, long timeToDoSomeLongComputation) { try { TimeUnit.SECONDS.sleep(timeToDoSomeLongComputation); } catch (InterruptedException e) { } String message = String.format(helloFormat, name); updateUi(message, androidColor); showNotificationsDelayed(); } @UiThread //UI线程 void updateUi(String message, int color) { setProgressBarIndeterminateVisibility(false); textView.setText(message); textView.setTextColor(color); } @UiThread(delay=2000) //可以设置延时时间,以毫秒为单位 void showNotificationsDelayed() { Notification notification = new Notification(R.drawable.icon, "Hello !", 0); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(), 0); notification.setLatestEventInfo(getApplicationContext(), "My notification", "Hello World!", contentIntent); notificationManager.notify(1, notification); } @LongClick void startExtraActivity() { Intent intent = new Intent(this, ActivityWithExtra_.class); intent.putExtra(ActivityWithExtra.MY_DATE_EXTRA, new Date()); intent.putExtra(ActivityWithExtra.MY_STRING_EXTRA, "hello !"); intent.putExtra(ActivityWithExtra.MY_INT_EXTRA, 42); startActivity(intent); } @Click void startListActivity(View v) { startActivity(new Intent(this, MyListActivity_.class)); } @Touch void myTextView(MotionEvent event) { Log.d("MyActivity", "myTextView was touched!"); } @Transactional int transactionalMethod(SQLiteDatabase db, int someParam) { return 42; } }
这个项目的好处是使用到了IOC模式,代码量小而且简洁,使程序员更多的关注于业务逻辑而不是页面,而且@Backgroud这个标签下开启的线程在线程池中管理。
类似的项目还有Android Binding,RoboGuice等,有兴趣可以看一下这个文章
CLEAN CODE IN ANDROID APPLICATIONS一个Spring gay写得,很不错哦~
http://blog.springsource.com/2011/08/26/clean-code-with-android/
评论
4 楼
crackpot
2014-10-22
真的挺方便的啊
3 楼
wangbin12315789
2013-08-02
这个例子我试了试 结果会报错 提示windowManager.getDefaultDisplay(); 这句空指针,而注释掉屏幕就黑了 什么也都不显示了。请问您遇到过这个情况吗?
或者有什么好的解决办法吗?
或者有什么好的解决办法吗?
2 楼
malong26
2012-12-20
q601180252 写道
能把代码发出来不
我记得github里面好像有demo
1 楼
q601180252
2012-12-19
能把代码发出来不
发表评论
-
当显示Popupwindow时,音量键无效
2013-07-31 20:16 1576Activity设置了setVolumeControlStre ... -
Service与Activity通信
2013-07-27 09:42 727There are three obvious ways to ... -
SQLite错误总结
2013-07-24 14:58 10791. android.database.sqlite.SQLi ... -
程序退出代码片段
2013-05-03 11:26 1009Intent intent = new Intent(In ... -
使用观察者模式完美实现android程序退出
2013-05-02 15:04 16210android的app程序退出有几种方式:activi ... -
ADT21抢鲜使用
2012-12-07 15:00 2865伴着Android4.2的发布,楼主我也更新到了API17,a ... -
PopupWindow的onScrollChanged系统bug
2012-11-29 09:22 2614最近遇到一个问题,在项目中使用actionbar做标题栏,ac ... -
租吧――我的app发布历程
2012-11-23 10:41 4639从这个项目开始计 ... -
android手机基站定位
2012-10-31 09:47 7407这段时间在做定位功能 ... -
Android Parcel初识
2012-07-13 21:06 1176android中新的对象序列化Parcel,基于IPC协议(进 ... -
Android 广告滚动条实现
2012-07-12 15:21 11733各个商城类客户端都有滚动广告,比如京东,QQ,1号电,当当网等 ... -
actionbar使用
2012-06-28 20:08 3544ActionBar作为一个优秀的开源控件,被google所看好 ... -
模仿iphone弹出式短信查看
2012-06-18 12:25 1994感觉使用抽屉查看短信麻烦,于是自己写了一个模仿iphone查看 ... -
Android中3种方法实现back键动作
2012-05-24 17:57 24424方法一:重写onBackPressed方法 @Overri ... -
ActivityGroup中使用切换动画
2012-05-23 18:10 4402在stack上面发现的方法,分享给大家,功能是在activit ... -
Android的AsyncTask类中使用自定义handler
2012-05-10 08:53 2667熟知的AsyncTask就是Thread+handler实现, ... -
当rawQuery遇上模糊查询
2012-04-18 18:04 4794遇到一个好玩的事情,使用rawQuery方法模糊查询,代码这样 ... -
Android网络收音机项目
2012-03-19 18:34 14733最近喜欢听广播,但是搜索了一下,苦于网上没有andro ... -
viewpager循环拖动
2011-12-31 23:18 13169最近在研究viewpager,准备做循环拖动即A->B- ...
相关推荐
mandala, 一个编写原生Android应用程序 Mandala Mandala是一个框架,用于在中编写Android原生应用程序,使用 Goandroid工具链。 你可以在桌面上开发。测试和运行你的应用程序,然后将它的部署到Android设备上。 它...
第3章探讨用户界面,也就是大多数Android程序中最重要的部分。 致谢 我要感谢为本书成功出版做出贡献的许多人,包括审稿人Anthony Stevens、Gabor Paller、Fred Burke、Dianne Hackborn和Laurent Pontier,...
具体public.xml如何编写,可参考PluginMain/res/values/public.xml 以及 PluginTest/res/values/public.xml俩个文件,它们是分别用来固定宿主程序和插件程序资源id的范围的。 4、插件apk的Context 构造一个...
这是用作使用最新框架功能编写Android应用程序的基础的模板。 特征 多模块项目设置 易于使用的基于多模块。 使图书馆始终保持最新状态 未来的工作 单元测试 使用Espresso进行UI测试 执照 Copyright 2021 Alejandro ...
伴侣 使用kivy框架编写的android应用程序,用于操作Mate和Unity桌面。
DataFramew是Android的SQLite数据库框架,在程序中,可以通过编写一个xml文件创建,修改,删除数据库记录!
Android-MediaPlayer上层应用程序使用JAVA语言编写,实现逻辑处理;JAVA程序通过调用底层媒体库来实现具体的音视频文件和网络视频播放; JAVA程序通过JNI接口实现对底层媒体库libmedia.so的调用; MediaPlayer在运行...
Android会同一个核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是用JAVA编写的。 开发者也完全可以访问核心应用程序所使用的API...
你是否在用eclipse编写android程序时候 出现source not find这样的情况 这是android应用部分的全部源代码 下载后直接释放到sdk目录下 platform目录下的sources目录(新建) 即可看到所有代码 无须使用git和ubuntu...
某公司的培训教材 一、在Android内核源代码工程(kernel)中编写硬件驱动程序.............................4 二、在Android系统中增加C...六、在Android系统中编写APP通过应用程序框架层访问硬件服务.................28
3.1 Android程序框架 3.1.1 Android项目目录结构 3.1.2 Android应用解析 3.2 Android的生命周期 3.3 Android程序U设计 3.4 小结 第4章 用户界面开发 4.1 用户界面开发详解 4.1.1 用户界面简介 4.1.2 事件处理 4.2 ...
所有的应用程序都是使用 JAVA 语言编写的。 应用程序框架 开发人员也可以完全访问核心应用程序所使用的 API 框架。该应用程序的架构设计简化了组件的重用;任何 一个应用程序都可以发布它的功能块并且任何其它的应用...
采用Qt框架编写,以嵌入式ARM Linux系统作为软件运行平台。 Qt技术是一套强大的跨平台应用程序开发框架,专注于使用C++语言来构建高性能、高可维护性的软件解决方案。自1991年首次推出以来,Qt因其卓越的跨平台能力...
是Android SDK自带的测试工具,是一个命令行工具,可以运行在模拟器中或者实际设备中,它向系统发送伪随机的用户事件流(如按键输入,触摸屏输入,手势输入等),实现对正在开发的应用程序进行压力测试。...
《Android 4高级编程(第3版)》由Android权威专家编写,涵盖了所有最新的内容,是学习使用Android 4SDK开发移动应用程序的理想指南。本书见解深刻,帮助经验丰富的Android开发人员充分挖掘Android4的新特性的潜力...
自己整理的Android12版本的系统资源目录分析,包括各个目录对应的分支 ...frameworks:应用程序框架,Android系统核心部分,由Java和C++编写.pdf packages:应用程序包.pdf system:底层文件系统库、应用和组件.pdf
Android 平台提供了丰富的功能和接口,开发人员可以使用 Java 或 Kotlin 等编程语言编写 Android 应用程序。Android 项目也可以是针对特定设备或特定需求进行自定义开发的软件解决方案。 以下是 Android 项目的一些...
第5章“Android的Java虚拟机和Java环境”,这是介于本地和Java层之间的相关内容,主要介绍Android的Java虚拟机Dalvik的基本概念、Android Java程序的环境、JNI的使用方法,以及Java框架的启动流程等。 第6章...
低门槛开发iOS、Android、小程序应用的前端框架详解 现如今跨平台开发技术已不是什么新鲜话题了,在市面上也有一些开源的框架可供选择,然而技术成熟、产品服务健全的平台并不多,其中也不乏推陈出新的框架值得...
和苹果不一样,它对那些想将应用程序提交到iPhone App Store的开发人员有着严格的指导方针和要求,Google的Android平台非常开放,甚至还可以用PHP编写Android应用程序,Irontech创建了一个运行在Android上的PHP移植...