当前位置:  编程技术>移动开发
本页文章导读:
    ▪open, ftruncate, m地图        open, ftruncate, mmapopen system\core\init\property_service.c android: fd = open("/dev/__properties__", O_RDWR | O_CREAT, 0600); mingw:     fd = open("c:\\__properties__", O_RDWR | O_CREAT, 0600); if (fd < 0){ fd = creat("c:\\__properties__", O.........
    ▪ 应用程序icon及UITabBar又下角带红圈中数字的实现        应用程序icon及UITabBar又上角带红圈中数字的实现引入 在IOS应用中经常要在程序中显示应用更新状态,可能是通过程序本身,也可能是服务推送,那么怎样在应用icon及UITabBar又上角带红圈中数.........
    ▪ i-jetty-3.1编译小结       i-jetty-3.1编译总结因为i-jetty-3.1是基于maven的工程,可以在eclipse或者命令行模式编译,但是都需要设置相应的环境。 下面详细介绍命令行模式的i-jetty编译步骤: 1.1 安装maven 从官网 http://maven.a.........

[1]open, ftruncate, m地图
    来源: 互联网  发布时间: 2014-02-18
open, ftruncate, mmap
open
system\core\init\property_service.c
android:
fd = open("/dev/__properties__", O_RDWR | O_CREAT, 0600);


mingw:
    fd = open("c:\\__properties__", O_RDWR | O_CREAT, 0600);
if (fd < 0){
fd = creat("c:\\__properties__", O_RDWR | O_CREAT);
if (fd < 0){
printf("ERROR opening.\n\terror is:%s\n", strerror(errno));
return -1;

chmod("c:\\__properties__", 0600);
}



ftruncate
mingw
c:\mingw-4.6.1\include\unistd.h
__CRT_INLINE int ftruncate(int __fd, off_t __length)
{
  return _chsize (__fd, __length);
}




mmap
system\core\init\property_service.c
android:
    data = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);


mingw:
nt-base.h:
#if !defined(mmap)
#  define mmap(address,length,protection,access,file,offset) \
  NTMapMemory(address,length,protection,access,file,offset)
#endif
nt-base.c:
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                             %
%                                                                             %
%                                                                             %
+  N T M a p M e m o r y                                                      %
%                                                                             %
%                                                                             %
%                                                                             %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  Mmap() emulates the Unix method of the same name.
%
%  The format of the NTMapMemory method is:
%
%    MagickExport void *NTMapMemory(char *address,size_t length,int protection,
%      int access,int file,MagickOffsetType offset)
%
*/
//MagickExport void *NTMapMemory(char *address,size_t length,int protection,
 void *NTMapMemory(char *address,size_t length,int protection,
  int flags,int file,MagickOffsetType offset)
{
  DWORD
    access_mode,
    high_length,
    high_offset,
    low_length,
    low_offset,
    protection_mode;


  HANDLE
    file_handle,
    map_handle;


  void
    *map;


  (void) address;
  access_mode=0;
  file_handle=INVALID_HANDLE_VALUE;
  low_length=(DWORD) (length & 0xFFFFFFFFUL);
  //The high-order DWORD of the maximum size of the file mapping object. normally it should be 0, unless 
  //the file size is extremely big.
  //refer to MemoryMappedFile::map in https://raw.github.com/zimbatm/deb-mongodb/master/util/mmap_win.cpp  
//  high_length=(DWORD) ((((MagickOffsetType) length) >> 32) & 0xFFFFFFFFUL);
  high_length=0;
  map_handle=INVALID_HANDLE_VALUE;
  map=(void *) NULL;
  low_offset=(DWORD) (offset & 0xFFFFFFFFUL);
  high_offset=(DWORD) ((offset >> 32) & 0xFFFFFFFFUL);
  protection_mode=0;
  if (protection & PROT_WRITE)
    {
      access_mode=FILE_MAP_WRITE;
      if (!(flags & MAP_PRIVATE))
        protection_mode=PAGE_READWRITE;
      else
        {
          access_mode=FILE_MAP_COPY;
          protection_mode=PAGE_WRITECOPY;
        }
    }
  else
    if (protection & PROT_READ)
      {
        access_mode=FILE_MAP_READ;
        protection_mode=PAGE_READONLY;
      }
  if ((file == -1) && (flags & MAP_ANONYMOUS))
    file_handle=INVALID_HANDLE_VALUE;
  else
    file_handle=(HANDLE) _get_osfhandle(file);
  map_handle=CreateFileMapping(file_handle,0,protection_mode,high_length,
    low_length,0);
  if (map_handle)
    {
      map=(void *) MapViewOfFile(map_handle,access_mode,high_offset,low_offset,
        length);
      CloseHandle(map_handle);
    }
  if (map == (void *) NULL){
printf("ERROR CreateFileMapping.\n\terror is:%s\n", strerror(errno));
    return((void *) MAP_FAILED);
  }
  return((void *) ((char *) map));
} //void *NTMapMemory(char *address,size_t length,int protection,

    
[2] 应用程序icon及UITabBar又下角带红圈中数字的实现
    来源: 互联网  发布时间: 2014-02-18
应用程序icon及UITabBar又上角带红圈中数字的实现
引入
在IOS应用中经常要在程序中显示应用更新状态,可能是通过程序本身,也可能是服务推送,那么怎样在应用icon及UITabBar又上角带红圈中数字呢,下面将简单说明。
实现
//ICON
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:number];
//number为显示在ICON上的整数
 
//UITabBar
[tabBarItem setBadgeValue:[NSString stringWithFormat:@"%d",number]];
//tabBarItem获取方法:[[[tabBarCtr tabBar] items] objectAtIndex:i];【tabBarCtr为APPDelegate中的UITabBarController,i表示第i个TabBar】
// number为显示在TabBar上的整数

[UIApplication sharedApplication].applicationIconBadgeNumber



    
[3] i-jetty-3.1编译小结
    来源: 互联网  发布时间: 2014-02-18
i-jetty-3.1编译总结
因为i-jetty-3.1是基于maven的工程,可以在eclipse或者命令行模式编译,但是都需要设置相应的环境。

下面详细介绍命令行模式的i-jetty编译步骤:

1.1 安装maven

从官网 http://maven.apache.org/download.html 下载最新的maven包,解压后放到某个目录。

(linux:/usr/local/apache-maven-3.0.4;windows:c:\apache-maven-3.0.4);

1.2 安装android sdk

linux:/Users/guanjianjun/android-sdks

Windows:c:\program files\android\android-sdk

1.3 安装jdk

1.4 设置环境变量

Linux:

export M2_HOME=/usr/local/apache-maven-3.0.4

export M2=$M2_HOME/bin

export MAVEN_OPTS="-Xms256m -Xmx512m"

export ANDROID_HOME=/Users/guanjianjun/android-sdks

export PATH=$M2:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:/opt/local/bin:/opt/local/sbin:/usr/local/mysql/bin:$PATH

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

Windows:

在‘我的电脑’->‘属性’-> ‘高级系统设置’ -> ‘高级’-> ‘环境变量下’添加如下环境变量。

ANDROID_HOME=C:\Program Files\Android\android-sdk

JAVA_HOME=C:\Program Files\Java\jdk1.7.0_07

CLASSPATH=%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

M2_HOME=C:\apache-maven-3.0.4

M2=%M2_HOME%\bin

MAVEN_OPTS=” -Xms256m -Xmx512m”

PATH后面加上

%JAVA_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%M2%

1.5 更改i-jetty-3.1的pom.xml文件

怎么修改请见svn里文件的注释,这里仅列出修改过的地方

svn: https://portal.src.corp.qihoo.net/svn/WirelessBrowser/Cloud_acceleration/investigation/i-jetty-3.1

=============Pom.xml===========

<android.version>4.1.1.4</android.version>

<android.sdk.version>7</android.sdk.version>

=============i-jetty-ui/pom.xml===========

<artifactId>android-maven-plugin</artifactId>

<version>3.4.0</version>


按照以上步骤搭建好环境后在命令行下进入i-jetty-3.1目录,直接输入命令:

>mvn clean install

**不出意外的话就能生成apk了。 

另外还可以在eclipse中编译i-jetty, 简单步骤如下:
# maven build ijetty in eclipse http://orgcent.com/m2eclipse-maven-android-ijetty/
1 Install the ADT, Android SDK, m2eclipse, Maven, JDK, 及配置环境变量
详细参考上面的内容.
2 i-jetty下载及导入Eclipse
源码地址:http://code.google.com/p/i-jetty/downloads/list
3 使用Import->Maven->Existing Maven Projects来导入i-jetty的Maven项目
Eclipse下编译Maven项目ijetty-parent
Run as -> maven clean -> maven install 即可。
 


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