Ⅰ 在android系统中如何实现开发论坛应用
是想做论坛的手机客户端吧,手下你先做前端,参考各个流行的论坛架构,也可以去安卓巴士和eoe论坛上卖弄找源码,应该可以找的到,逛论坛的时候看见过。然后就是需要架设服务器,配置服务器什么的是很大一块,前端设计够你做很长时间的了,服务器的话配置你上网找找,数据库软件最好用SQLserver2008或者最新的都可以。
建议在eclipse上面做界面,然后再写类的代码,吧前端做完了以后涉及到通信方面的就该去架设服务器了。一个人你是肯定搞不完的,要是一个团队的话,最少要三个人,一个程序员也就是前端,一个美工,一个做数据库和服务器的。
Ⅱ android输入法开发,最开始编写的时候必须要写的有什么内容
参考开源的输入法程序:
这个是个日语输入法
初步学习:-1个月
1.去电驴上下一份mars的视频。先浅浅的了解下android应用开发、整体架构和思路。mars的视频做的挺不错。
2.在eclipse中导入api demos。在手机/模拟器上运行apidemos,里面的实例非常棒。可以把例子中涉及到项目的地方标注下,然后着重看看这部分的代码.
逐渐深入:-3个月
1.有选择的阅读android api中的Dev Guide部分。
2.阅读android中的resources部分。
上面的文章比较多,也不需要全部阅读。只是在做过初步工作后,有选择性的着重看一些相关内容。相关内容应该不仅仅包括项目直接相关的,还包括一些平台基础知识。这些东西应如何选择是在初步学习阶段中应该明确的。
3.有空上上android相关比较好的社区,看看高手总结。如eoe、bus之类的。
准备阶段:-3个月
阅读开源的项目。
楼下有的朋友也提了一些建议。我觉得都挺好的,到了这个时候就该开始阅读源码进行学习了。
这里的关键在于慢慢扣源码,先找容易看到的类。看着注释慢慢理解,碰到不熟悉的类就查android的api。
阅读是个长期的过程,然后必须要产生一些成果:
a.与输入法相关的关键接口有哪些?关键类有哪些,职责是什么?
b.输入法的架构是怎样的?组件之间如何交互?
c.数据从哪里来?如何进行组织?
3.开发阶段:
迭代开发。从最小的原型开始做起。
最小原型包括:最基本的输入法功能,输入字母,确定输入,显示字典,选择完成输入。最基础的测试数据。
在完善输入法基本功能上迭代开发。包括联想输入,更智能的分词,以及符号和手写识别等。还有ui美化等等。
既然你这边有学c的同学,那么在一些关键瓶颈方面。也可以使用NDK做后续优化。
Ⅲ android的toast怎么自定义显示时间长度
Android中Toast的显示时间为特定时间且不可更改,但是有时候我们开发设计需要让Toast显示更长时间,或者自己完全控制Toast的显示和关闭。通过查看Toast类的源码,可以看出,这有点难为它了,Toast类本身并没有提供相应方法。
但是通过源码的查看,还是可以看出点眉头。源码分析思路在这里转eoe里的一篇文章,思路较为清晰:
转:
Toast信息提示框之所以在显示一定时间后会自动关闭,是因为在系统中有一个Toast队列。系统会依次从队列中取(出队列)一个Toast,并 显示它。在显示一段时间后,再关闭,然后再显示下一个Toast信息提示框。
直到Toast队列中所有Toast都显示完为止。那么有些时候需要这个Toas t信息提示框长时间显示,直到需要关闭它时通过代码来控制,而不是让系统自动来关闭Toast信息提示框。
不过这个要求对于Toast本身来说有些过 分,因为Toast类并没有提供这个功能。虽然如此,但方法总比问题多。通过一些特殊的处理还是可以实现这个功能的,而且并不复杂。
Toast信息提示框需要调用Toast.show方法来显示。下面来看一下show方法的源代码。
public void show() {
if (mNextView == null) {
throw new RuntimeException("setView must have been called");
}
INotificationManager service = getService();
String pkg = mContext.getPackageName();
TN tn = mTN;
try {
// 将当前Toast加入到Toast队列
service.enqueueToast(pkg, tn, mDuration);
} catch (RemoteException e) {
// Empty
}
}
复制代码
show方法的代码并不复杂,可以很容易找到如下的代码。
service.enqueueToast(pkg, tn, mDuration);
复制代码
从上面的代码可以很容易推断出它的功能是将当前的Toast加入到系统的Toast队列中。
看到这里,各位读者应该想到。虽然show方法的表面功能是显示Toast信息提示框,但其实际的功能是将Toast加入到队列中,再由系统根据Toast队列来显示Toast信息提示框。那么我们经过更进一步地思考,可以大胆地做出一个初步的方案。
既然系统的Toast队列可以显示Toast信息提示框,那么我们为什么不可以自己来显示它呢?
这样不是可以自己来控制Toast的信息提示框的显示和关闭了吗!当然,这就不能再调用show方法来显示Toast信息提示框了(因为show方法会将Toast加入队列,这样我们就控制不了Toast了)。
既然初步方案已拟定,现在就来实施它。先在Toast类找一下还有没有其他的show方法。
结果发现了一个TN类,该类是Toast的一个内嵌类。在TN类中有一个show方法。TN是ITransientNotification.Stub的子类。从ITransientNotification和TN类中的show方法初步推断(因为Transient的中文意思是“短暂的”)系统是从Toast队列中获得了Toast对象后,利用TN对象的show方法显示Toast,再利用TN.hide方法来关闭Toast。
首先声明,这只是假设,我们还不知道这么做是否可行!当然,这也是科学研究的一般方法,先推断或假设,然后再证明推断或假设。
现在关键的一步是获得TN对象。遗憾的是TN被声明成private类型,外部无法访问。不过别着急。在Toast类中有一个mTN变量。虽然不是public变量,但仍然可以通过反射技术访问该变量。mTN变量会在创建Toast对象时初始化。
因此,只要获得mTN变量,就获得了TN对象。下面的代码显示了一个永远不会自动关闭的Toast信息提示框。
// 先创建一个Toast对象Toast toast = Toast.makeText(this, "永不消失的Toast", Toast.LENGTH_SHORT);// 设置Toast信息提示框显示的位置(在屏幕顶部水平居中显示)toast.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 0);try{
// 从Toast对象中获得mTN变量Field field = toast.getClass().getDeclaredField("mTN");
field.setAccessible(true);
Object obj = field.get(toast);
// TN对象中获得了show方法
Method method = obj.getClass().getDeclaredMethod("show", null);
// 调用show方法来显示Toast信息提示框
method.invoke(obj, null);
}
catch (Exception e)
{
}
复制代码
上面的代码中try{…}catch(…){…}语句中的代码是关键。先利用事先创建好的Toast对象获得了mTN变量。然后再利用反射技术获得了TN对象的show方法。
关闭Toast和显示Toast的方法类似,只是需要获得hide方法,代码如下:
try
{
// 需要将前面代码中的obj变量变成类变量。这样在多个地方就都可以访问了
Method method = obj.getClass().getDeclaredMethod("hide", null);
method.invoke(obj, null);
}
catch (Exception e)
{
}
复制代码
上面的代码已经很完美地实现了通过代码控制Toast信息提示框显示和关闭的功能。
但如果想实现得更完美,可以在Android SDK源代码中找一个叫ITransientNotification.aidl的文件(该文件是AIDL服务定义文件,将在后面详细介绍),并在Android工程的src目录中建一个android.app包,将这个文件放到这个包中。
然后ADT会自动在gen目录中生成了一个android.app包,包中有一个ITransientNotification.java文件。由于Android SDK自带的ItransientNotification接口属于内部资源,外部程序无法访问,因此,只能将从Toast对象中获得的mTN变量转换成刚才生成的ITransientNotification对象了。
这样就不需要使反射技术获得show和hide方法了。
经过改良的显示和关闭Toast信息提示框的代码如下:
ITransientNotification notification = (ITransientNotification) field.get(toast);
// 显示Toast信息提示框
notification.show();
// 关闭Toast信息提示框
notification.hide();
复制代码
最后整理代码如下:
Java代码
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class TestToastActivity extends Activity {
private Button showtoast,closetoast;
private Toast toast;
private Field field;
private Object obj;
private Method showMethod,hideMethod;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//初始化按钮组件
showtoast = (Button)this.findViewById(R.id.showtoast);
closetoast = (Button)this.findViewById(R.id.closetoast);
//设置组件监听
showtoast.setOnClickListener(new MyOnClickListener());
closetoast.setOnClickListener(new MyOnClickListener());
//创建Toast对象
toast = Toast.makeText(this, "Toast自定义显示时间测试", 1);
toast.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL, 0, 0);
//利用反射技术拿到mTN对象
reflectionTN();
}
class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.showtoast:
try {
showMethod.invoke(obj, null);//调用TN对象的show()方法,显示toast
} catch (Exception e) {
e.printStackTrace();
}
break;
case R.id.closetoast:
try {
hideMethod.invoke(obj, null);//调用TN对象的hide()方法,关闭toast
} catch (Exception e) {
e.printStackTrace();
}
break;
default:
break;
}
}
}
private void reflectionTN() {
try {
field = toast.getClass().getDeclaredField("mTN");
field.setAccessible(true);
obj = field.get(toast);
showMethod = obj.getClass().getDeclaredMethod("show", null);
hideMethod = obj.getClass().getDeclaredMethod("hide", null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
复制代码
Ⅳ Android 开发源代码在哪找
是指哪一种?是开源框架,还是别人做的一些demo,还是google提供的api 源码,前一种的话各种开发论坛,像csdn,51cto,eoe,安卓bus都有,后一种的话可以通过sdk,或者用github去google上面下载
Ⅳ android是用什么软件开发的
Android编程的实现是基于Java语言实现的,开发时可以使用集成版的Eclipse,也可以使用Android Studio。下面,图示两种配置方式。
工具/原料
Eclipse、SDK、AndroidStudio
方法/步骤
1、Eclipse集成ADT插件实现Android环境的搭建
(1)打开Eclipse,选择Help-->Install New Software,如图所示:
Ⅵ android源码地址有哪些2014
https://github.com/上面好的代码比较多!
国内:http://git.oschina.net/
eoe上面也有一些
可以fan墙嘛,使用goagent速度很快的
Ⅶ 如何在github上找到好的android项目源码学习
完整的项目还是太少而且有点难,再分享个eoe上别人整理的开源项目集:Android精品开源项目整理,如果觉得项目还是难的话,还是先从控件或部分功能的demo学起(Google也提供有Android的APIdemo),这样或许会学得更快。
Ⅷ Android 怎样实现图片放大缩小,上一页,下一页
用AsynTask加载网络图片,可以看下我以前发的博客http://code.eoe.cn/1965.html。下载网络图片的代码写在MainActivity.java里面的private class DownloadTask extends AsyncTask<String, Integer, List<RowItem> >{}
Ⅸ 安卓源代码
需要SDK,开发者套件。
你多上论坛上逛逛吧。自然就知道怎么弄了
Ⅹ Android怎么得到toast的内容,不一定是自己软件的toast
Android中Toast的显示时间为特定时间且不可更改,但是有时候我们开发设计需要让Toast显示更长时间,或者自己完全控制Toast的显示和关闭。通过查看Toast类的源码,可以看出,这有点难为它了,Toast类本身并没有提供相应方法。
但是通过源码的查看,还是可以看出点眉头。源码分析思路在这里转eoe里的一篇文章,思路较为清晰:
转:
Toast信息提示框之所以在显示一定时间后会自动关闭,是因为在系统中有一个Toast队列。系统会依次从队列中取(出队列)一个Toast,并 显示它。在显示一段时间后,再关闭,然后再显示下一个Toast信息提示框。
直到Toast队列中所有Toast都显示完为止。那么有些时候需要这个Toas t信息提示框长时间显示,直到需要关闭它时通过代码来控制,而不是让系统自动来关闭Toast信息提示框。
不过这个要求对于Toast本身来说有些过 分,因为Toast类并没有提供这个功能。虽然如此,但方法总比问题多。通过一些特殊的处理还是可以实现这个功能的,而且并不复杂。