当前位置:  编程技术>移动开发
本页文章导读:
    ▪Binder运用        Binder应用关于Binder原理这里不做介绍了,可以参看Android技术内幕,但是关于Binder应用讲解的很详细的不多,因我在做一个移植的项目,与media类似,故研究了一下media,特别对其中的如何实现.........
    ▪ Unity3D 给对象(gameObject)平添脚本代码        Unity3D 给对象(gameObject)添加脚本代码Unity3D支持三种脚本,javascript、C# Script、Boo Script(类Python)。我这个人比较二......最初公司这边叫我学C#,我之前不会,所以现学。到了之后才发现,我.........
    ▪ Qwt装配       Qwt安装                                                                             Qwt安装 ======= 安装 ======= Qwt使用qmake编译所有的组件和示例。 qmake是Qt发布中的一部分。 qmake读.........

[1]Binder运用
    来源: 互联网  发布时间: 2014-02-18
Binder应用

关于Binder原理这里不做介绍了,可以参看Android技术内幕,但是关于Binder应用讲解的很详细的不多,因我在做一个移植的项目,与media类似,故研究了一下media,特别对其中的如何实现客户端、服务端才能通过Binder通信进行学习,总结如下:

1、基于接口编程,这是编程的趋势,好处实在太多

2、使得接口支持Binder,需要2步:

2.1定义接口,继承IInterface,并添加DECLARE_META_INTERFACE,并定义服务端接口,如下所示:

class IClient: public IInterface
{
public:
    DECLARE_META_INTERFACE(Client);
    virtual long  Add(long a,long b) = 0;
};

class BnClient:public BnInterface<IClient>
{
public:
    virtual status_t    onTransact( uint32_t code,
                                    const Parcel& data,
                                    Parcel* reply,
                                    uint32_t flags = 0);
};

2.2 实现客户端和服务端

#define LOG_TAG "IClient"
//#define LOG_NDEBUG 0
#include <utils/RefBase.h>
#include <binder/IInterface.h>
#include <binder/Parcel.h>

#include <IClient.h>

namespace android {

enum {
    ADD = IBinder::FIRST_CALL_TRANSACTION
};

class BpClient : public BpInterface<IClient>
{
public:
    BpClient(const sp<IBinder>& impl)
        : BpInterface<IClient>(impl)
    {
    }
    virtual long Add(long a,long b)
    {
        Parcel data,reply;
        data.writeInterfaceToken(IClient::getInterfaceDescriptor());
        data.writeInt32(a);
        data.writeInt32(b);
        remote()->transact(ADD,data,&reply);
        return reply.readInt32();
    }
   };

IMPLEMENT_META_INTERFACE(Client, "android.test.IClient");

// ----------------------------------

status_t BnClient::onTransact(
    uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags)
{
    switch(code) {
        case ADD:
        {
           CHECK_INTERFACE(IClient, data, reply);
           reply->writeInt32(Add(data.readInt32(),data.readInt32()));
           return NO_ERROR;
        };
        break;
      
        default:
            return BBinder::onTransact(code, data, reply, flags);
    }
}
}; // namespace android

3、最后在服务端实现具体类,继承BnClient



    
[2] Unity3D 给对象(gameObject)平添脚本代码
    来源: 互联网  发布时间: 2014-02-18
Unity3D 给对象(gameObject)添加脚本代码

Unity3D支持三种脚本,javascript、C# Script、Boo Script(类Python)。我这个人比较二......最初公司这边叫我学C#,我之前不会,所以现学。到了之后才发现,我会的Python是可以派上用场的,而且我也更喜欢Python一些。但这还不是最二的。我发现了一个问题,就是官方的脚本文档基本都是用javascript来给用例的。于是我心一横,就把javascript的基础给过了一遍(这个资料挺不错的)。好吧,最二的来了。后来当我发现官方文档里的这个的时候,我笑了。见下图。


点击这个下拉菜单就可以切换例子的代码的类型......算了,新学一门语言也不错。虽然只懂点皮毛......PS:建议不会编程的童鞋别以JS为第一门语言,很可能会养成不好的习惯哦。特别是在代码风格上面。当然,这里并没有贬低JS的意思。毕竟我现在用它用的很舒服。

亲,如果有概念(比如gameObject之类的概念)上的不懂,请先去看Unity官方的用户手册哈。我看了文档后,我的理解是,脚本和组件没啥区别。下面就直接了当的记录下添加脚本的步骤吧。(方法有很多,我就说一种我最习惯的方法哈)首先,在Project view中点鼠标右键,选Create -> javascript(别的也行),以下由图说明。


添加之后,在Project view里出现的脚本文件,双击之后即可编辑。


把Project view中的脚本文件拖拽到你想通过脚本来控制的对象(gameObject)上,之后脚本会以类似组件的形式,出现在对象的Inspector窗口中。

嘿嘿,具体脚本的编写,就看自己的水平咯。有啥不懂就上网、自己研究、或者看看官方的脚本文档。



    
[3] Qwt装配
    来源: 互联网  发布时间: 2014-02-18
Qwt安装
                                                                             Qwt安装
=======
安装 =======
Qwt使用qmake编译所有的组件和示例。
qmake是Qt发布中的一部分。


qmake读取工程文件,工程文件包含了如何工程选项和如何编译特定工程的规则。一个工程文件是以"*.pro"结尾的。
以"*.pri"结尾的文件都是被工程文件包含的,该文件包含了几个工程文件通用的定义。


qwtconfig.pri和qwtbuild.pri被Qwt包中的所有工程读取。q当你编译自己的应用程序时,qwtconfig.pri同样被qwt.prf读取。
因此第一步就是编辑*.pri文件使其满足你的需求。


qmake的子目录template是解决在路径名中使用空格的情况。因此最好不要在包含空格的路径名下编译Qwt。(否则你可能就需要
在所有的子目录下手动的运行qmake)。


======
文档 ======
Qwt包含了一个类文档,提供了该文档的多种格式:
-Html文档
-PDF文档
-Qt压缩帮助文档(*.qch),针对Qt assistant或者creator。
 你可以通过 "Edit Preferences" -> "Documentation" -> "Add..."加载该文档。
-Man帮助文档(仅UNIX)


======
编译Qwt ======
最简单的编译Qwt的方式就是在命令行中--但是如果你坚持使用IDE,那么就请别忘记"make install"这一步。
A)Unix
------
qmake
make
make install
如果你已经安装了一个共享库,并且该路径已经被你的操作系的的运行时连接器知道。在Linux系统上读取"man ldconfig"
(或者是通过谷歌搜索它)。另一个选择就是使用LD_LIBRARY_PATH(在一些系统上,使用LIBPATH代替,
在MacOSX是DYLD_LIBRARY_PATH)环境变量。
如果你仅仅是想获取Qwt的示例而不想安装任何东西,那么你可以设置LD_LIBRARY_PATH为你本地编译的库路径。


如果你没有在qwtconfig.pri中使能自动编译示例程序,那么你必须如下编译示例程序:
cd examples
qmake
make


B)Win32/MSVC
------
确保你的Qt版本是使用MSVC编译的--而不是MinGW!
请阅读qmake的文档获知如何将你的*.pro文件转换为适合你的开发环境。
例如:使用MSVC的nmake:
qmake qwt.pro
nmake
nmake install


如果你没有在qwtconfig.pri中使能自动编译示例程序,那么你必须如下编译示例程序:
cd examples
qmake examples.pro
nmake


Windows不会混合调试模式和发布模式的二进制程序。绝大多是使用Qwt设计师插件的问题都是因为试图在发行版本的设计师
程序中加载调试版本的Qwt库。


不可能将使用MinGW编译的设计师插件导入由MSVC编译的Qt Designer/Creator。当使用预先编译好的Qt Creator时,那是一个
常见的问题。


C)Win32/MinGW
------
确保你的Qt版本是使用MinGW编译的--而不是MSVC!
在安装了Qt的环境下启动一个Shell。(例如"Programs->Qt by Trolltech ...->Qt 4.x.x Command Prompt")。
确保你可以执行"make"或者是其它类似"mingw32-make"的命令。


qmake qwt.pro
make
make install


如果你没有在qwtconfig.pri中使能自动编译示例程序,那么你必须如下编译示例程序:
cd examples
qmake examples.pro
make


Windows不会混合调试模式和发布模式的二进制程序。绝大多是使用Qwt设计师插件的问题都是因为试图在发行版本的设计师
程序中加载调试版本的Qwt库。


不要忘记告诉qmake在哪里查找qwt.prf:
qmake -set QMAKEFEATURES ...


D)MacOSX
------
好吧,其实Mac是另一个Unix系统。因此请阅读A)中的安装步骤。
在最近发布的Qt4发行版本中,qmake默认的目标是生成XCode过程文件而不是makefiles。因此你可能需要如下操作:
qmake -spec macx-g++
...


E)Qt Embedded
------
我仅仅在Linux系统上的qvfb(Virtual Framebuffer Devivce)模拟器中测试了Qwt在Qt Embedded环境下运行。为模拟器编译Qwt
就如同为一般的Unix编译一样简单。


F)Symbian
------
我从未在该平台上测试过。


======
使用Qwt ======
使用qmake编译一个Qwt程序使用Qwt配置的特性,这些特性已经使用"make install"安装了。当qmake 可以找到它
(http://doc.qt.nokia.com/4.7/qmake-advanced-usage.html#adding-new-configuration-features)你可以仅仅在你自己的
工程文件中加入"CONFIG += qwt"。


如果你不使用qmake,你就必须在你编译器选项中设置Qwt的头文件路径,并且将Qwt的库路径添加到你连接器列表中。
当你在Windows上使用Qwt-DLLS时,不要忘记将QWT_DLL添加到你的编译器标志中。


当你使用Qwt设计师插件时,你需要配置你的Qt designer/creator使得它们可以找到这些插件。这可以通过设置QT_PLUGIN_PATH
或者是使用一个qt.conf文件(查看http://doc.qt.nokia.com/4.7/deployment-plugins.html)。除了插件外,Qwt的库文件本身也
需要被Designer/Creator知道(可以设置LD_LIBRARY_PATH, PATH ...)。


祝你好运!

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