精华内容
下载资源
问答
  • 重写代码逻辑,优化代码结构,降低内存使用率 (原作者是采用ACache类将数据修改成文本存储)。 增加书本的断点续传功能(仅支持单任务下载) 支持小说更新提示。 重建小说阅读器,仿制的掌上设计。提供的功能如下 ...
  • Miss 内存优化

    2021-03-31 18:47:06
    1.修改lib配置 在gradle使用minifyEnabled进行Proguard混淆的配置,可大大减小APP大小: so文件的优化:通常我们在使用NDK开发的时候,我们经常会有如下这么一段代码: abiFilters “armeabi-v7a” 看上面图分析,...

    1.修改lib配置

    在gradle使用minifyEnabled进行Proguard混淆的配置,可大大减小APP大小:

    so文件的优化:通常我们在使用NDK开发的时候,我们经常会有如下这么一段代码:

    abiFilters “armeabi-v7a”

    看上面图分析,armeabi-v7主要不支持ARMv5(1998年诞生)和ARMv6(2001年诞生).
    目前这两款处理器的手机设备基本不在我公司的适配范围(市场占比太少)。
    而许多基于 x86 的设备也可运行 armeabi-v7a 和 armeabi NDK 二进制文件。
    对于这些设备,主要 ABI 将是 x86,辅助 ABI 是 armeabi-v7a。
    最后总结一点:如果适配版本高于4.1版本,可以直接像我上面这样写,当然,如果armeabi-v7a不是设备主要ABI,那么会在性能上造成一定的影响

    1. 优化res,assets文件大小
      在Android Studio中打开“Analyze” 然后选择"Inspect Code…",范围选择整个项目,然后点击"OK"。
    2. 手动lint检查,手动删除无用资源
      使用tinypng等图片压缩工具对图片进行压缩
    3. 大部分图片使用Webp格式代替
      可以给UI提要求,让他们将图片资源设置为Webp格式,这样的话图片资源会小很多。如果想了解更多关于webp,请点击这里webp,当然,如果对图片颜色通道要求不高,可以考虑转jpg,最好用webp,因为效果更佳。
    4. 尽量不要在项目中使用帧动画
    5. 使用gradle开启shrinkResources
      移除无用资源文件,不显示Log,移除无用的resource文件
    6. 如果你的dex文件太大,检查是否引入了重复功能的第三方库
    7. 将大资源文件放到服务端,启动后自动下载使用
    8. 动态加载so库文件,插件化开发
    9. 删除翻译资源,只保留中英文
    展开全文
  • Android代码-NovelReader

    2019-08-05 23:43:22
    重写代码逻辑,优化代码结构,降低内存使用率 采用 sql 数据库对数据进行存储。 (原作者是采用ACache类将数据修改成文本存储) 增加书本的断点续传功能 (仅支持单任务下载) 支持小说更新提示。 重写小说阅读...
  • Android代码-ArgusAPM

    2019-08-06 04:45:07
    内存分析:全面监控内存使用情况,降低内存占用 进程监控:针对多进程应用,统计进程启动情况,发现启动异常(耗电、存活率等) 文件监控:监控APP私有文件大小/变化,避免私有文件过大导致的卡顿、存储空间占用等...
  • 在Android中如何获取SDCard和手机内存的总空间和可用空间等信息。 创建一个新的Android工程,工程名字为《获取存储空间大小》,包名为:com.connect.storageSize 这里使用默认生成的布局文件和Activity类。 修改...

    在Android中如何获取SDCard和手机内存的总空间和可用空间等信息。

    • 创建一个新的Android工程,工程名字为《获取存储空间大小》,包名为:com.connect.storageSize
      这里使用默认生成的布局文件和Activity类。
      修改布局文件activity_main.xml
      这里写图片描述
      布局文件第二部分:
      这里写图片描述
    • 编写业务代码
      业务代码第一部分:
      这里写图片描述
      这里写图片描述
      业务代码第二部分:
      这里写图片描述
      这里写图片描述
    • 在上述方法中,我们使用了两种方法分别计算SDCard的内存信息。其中第一种方法是JDK API提供的,第二种方法是Android API提供的。这两种方法获取到的总容量和可用容量信息在日志中输出见下图。发现得到的结果是一样的。在我们Android的开发中自己比较推荐使用第二种方法。因为第二种方法Google工程师专门针对Android系统设计的。相对更加的适用,在看Android源码的时候我们也能发现Android系统自己计算内存容量的时候使用的就是第二种方法。
      这里写图片描述
      这里写图片描述
    • 运行该程序,分别获取SD卡信息和内存信息。效果如图。
      这里写图片描述
    展开全文
  • 用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天通信演示代码 2个目标文件...
  • 获取APP缓存大小以及清理APP缓存

    千次阅读 2016-09-21 11:15:34
    在贴一大段代码之前,先普及...内置SD卡(注:现在的手机基本上都有,就是我们所谓的ROM,是不可以移除的,RAM是我们手机的运行内存) 外置SD卡(注:这个就是我们的SD卡了,可以移除) 我们来考虑一个问题

    在贴一大段代码之前,先普及Android的相关知识点:

    先看360手机助手的一张图:


    从上面这张图,我们可以看到这部手机有

    系统文件(注:这个是系统的文件系统,不允许修改的)

    内置SD卡(注:现在的手机基本上都有,就是我们所谓的ROM,是不可以移除的,RAM是我们手机的运行内存)

    外置SD卡(注:这个就是我们的SD卡了,可以移除)

    我们来考虑一个问题我们应用内的缓存数据存放在哪里?

    我们的应用程序一般会产生以下几种类型的数据:

    file-普通的文件存储

    database-数据库文件(.db文件)

    sharedPreference-配置数据(.xml文件)

    cache-图片缓存文件


    应用内数据的所有路径:

    /data/data/com.xxx.xxx/cache - 应用内缓存(注:对应方法getCacheDir())

    /data/data/com.xxx.xxx/databases - 应用内数据库

    /data/data/com.xxx.xxx/shared_prefs - 应用内配置文件

    /data/data/com.xxx.xxx/files - 应用内文件(注:对应方法getFilesDir())


    一种情况,我们没有外置SD卡,那么我们安装的应用安装在哪里?自然是手机中的内置SD卡里,具体路径是这样的:


    那在Android是用什么方法来获取这个路径的:


    如果我们手机有外置SD卡,我们也可以把应用安装在SD卡,但移除SD卡之后就不能使用了。



    不管是内置还是外置SD卡,获取路径的方法是一样:

    获取SD卡根目录:Environment.getExternalStorageDirectory().getAbsolutePath();

    外部Cache路径:/mnt/sdcard/android/data/com.xxx.xxx/cache 一般存储缓存数据(注:通过getExternalCacheDir()获取)

    外部File路径:/mnt/sdcard/android/data/com.xxx.xxx/files 存储长时间存在的数据 (注:通过getExternalFilesDir(String type)获取, type为特定类型,可以是以下任何一种

    Environment.DIRECTORY_MUSIC, Environment.DIRECTORY_PODCASTS, Environment.DIRECTORY_RINGTONES, Environment.DIRECTORY_ALARMS, Environment.DIRECTORY_NOTIFICATIONS, Environment.DIRECTORY_PICTURES, or Environment.DIRECTORY_MOVIES. )


    最后提供一个工具类:

    DataCleanManager.java

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. package com.infzm.daily.know.utils;  
    2.   
    3. /*  * 文 件 名:  DataCleanManager.java   
    4.  * * 描    述:  主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录   
    5.  * */  
    6.   
    7. import java.io.File;  
    8. import java.math.BigDecimal;  
    9.   
    10. import android.content.Context;  
    11. import android.os.Environment;  
    12. import android.text.TextUtils;  
    13.   
    14. /** * 本应用数据清除管理器 */  
    15. public class DataCleanManager {  
    16.     /** 
    17.      * * 清除本应用内部缓存(/data/data/com.xxx.xxx/cache) * * 
    18.      *  
    19.      * @param context 
    20.      */  
    21.     public static void cleanInternalCache(Context context) {  
    22.         deleteFilesByDirectory(context.getCacheDir());  
    23.     }  
    24.   
    25.     /** 
    26.      * * 清除本应用所有数据库(/data/data/com.xxx.xxx/databases) * * 
    27.      *  
    28.      * @param context 
    29.      */  
    30.     public static void cleanDatabases(Context context) {  
    31.         deleteFilesByDirectory(new File("/data/data/"  
    32.                 + context.getPackageName() + "/databases"));  
    33.     }  
    34.   
    35.     /** 
    36.      * * 清除本应用SharedPreference(/data/data/com.xxx.xxx/shared_prefs) * 
    37.      *  
    38.      * @param context 
    39.      */  
    40.     public static void cleanSharedPreference(Context context) {  
    41.         deleteFilesByDirectory(new File("/data/data/"  
    42.                 + context.getPackageName() + "/shared_prefs"));  
    43.     }  
    44.   
    45.     /** 
    46.      * * 按名字清除本应用数据库 * * 
    47.      *  
    48.      * @param context 
    49.      * @param dbName 
    50.      */  
    51.     public static void cleanDatabaseByName(Context context, String dbName) {  
    52.         context.deleteDatabase(dbName);  
    53.     }  
    54.   
    55.     /** 
    56.      * * 清除/data/data/com.xxx.xxx/files下的内容 * * 
    57.      *  
    58.      * @param context 
    59.      */  
    60.     public static void cleanFiles(Context context) {  
    61.         deleteFilesByDirectory(context.getFilesDir());  
    62.     }  
    63.   
    64.     /** 
    65.      * * 清除外部cache下的内容(/mnt/sdcard/android/data/com.xxx.xxx/cache) 
    66.      *  
    67.      * @param context 
    68.      */  
    69.     public static void cleanExternalCache(Context context) {  
    70.         if (Environment.getExternalStorageState().equals(  
    71.                 Environment.MEDIA_MOUNTED)) {  
    72.             deleteFilesByDirectory(context.getExternalCacheDir());  
    73.         }  
    74.     }  
    75.     /** 
    76.      * * 清除自定义路径下的文件,使用需小心,请不要误删。而且只支持目录下的文件删除 * * 
    77.      *  
    78.      * @param filePath 
    79.      * */  
    80.     public static void cleanCustomCache(String filePath) {  
    81.         deleteFilesByDirectory(new File(filePath));  
    82.     }  
    83.   
    84.     /** 
    85.      * * 清除本应用所有的数据 * * 
    86.      *  
    87.      * @param context 
    88.      * @param filepath 
    89.      */  
    90.     public static void cleanApplicationData(Context context, String... filepath) {  
    91.         cleanInternalCache(context);  
    92.         cleanExternalCache(context);  
    93.         cleanDatabases(context);  
    94.         cleanSharedPreference(context);  
    95.         cleanFiles(context);  
    96.         if (filepath == null) {  
    97.             return;  
    98.         }  
    99.         for (String filePath : filepath) {  
    100.             cleanCustomCache(filePath);  
    101.         }  
    102.     }  
    103.   
    104.     /** 
    105.      * * 删除方法 这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理 * * 
    106.      *  
    107.      * @param directory 
    108.      */  
    109.     private static void deleteFilesByDirectory(File directory) {  
    110.         if (directory != null && directory.exists() && directory.isDirectory()) {  
    111.             for (File item : directory.listFiles()) {  
    112.                 item.delete();  
    113.             }  
    114.         }  
    115.     }  
    116.       
    117.     // 获取文件  
    118.     //Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据  
    119.     //Context.getExternalCacheDir() --> SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据  
    120.     public static long getFolderSize(File file) throws Exception {  
    121.         long size = 0;  
    122.         try {  
    123.             File[] fileList = file.listFiles();  
    124.             for (int i = 0; i < fileList.length; i++) {  
    125.                 // 如果下面还有文件  
    126.                 if (fileList[i].isDirectory()) {  
    127.                     size = size + getFolderSize(fileList[i]);  
    128.                 } else {  
    129.                     size = size + fileList[i].length();  
    130.                 }  
    131.             }  
    132.         } catch (Exception e) {  
    133.             e.printStackTrace();  
    134.         }  
    135.         return size;  
    136.     }  
    137.       
    138.     /** 
    139.      * 删除指定目录下文件及目录 
    140.      *  
    141.      * @param deleteThisPath 
    142.      * @param filepath 
    143.      * @return 
    144.      */  
    145.     public static void deleteFolderFile(String filePath, boolean deleteThisPath) {  
    146.         if (!TextUtils.isEmpty(filePath)) {  
    147.             try {  
    148.                 File file = new File(filePath);  
    149.                 if (file.isDirectory()) {// 如果下面还有文件  
    150.                     File files[] = file.listFiles();  
    151.                     for (int i = 0; i < files.length; i++) {  
    152.                         deleteFolderFile(files[i].getAbsolutePath(), true);  
    153.                     }  
    154.                 }  
    155.                 if (deleteThisPath) {  
    156.                     if (!file.isDirectory()) {// 如果是文件,删除  
    157.                         file.delete();  
    158.                     } else {// 目录  
    159.                         if (file.listFiles().length == 0) {// 目录下没有文件或者目录,删除  
    160.                             file.delete();  
    161.                         }  
    162.                     }  
    163.                 }  
    164.             } catch (Exception e) {  
    165.                 // TODO Auto-generated catch block  
    166.                 e.printStackTrace();  
    167.             }  
    168.         }  
    169.     }  
    170.       
    171.     /** 
    172.      * 格式化单位 
    173.      *  
    174.      * @param size 
    175.      * @return 
    176.      */  
    177.     public static String getFormatSize(double size) {  
    178.         double kiloByte = size / 1024;  
    179.         if (kiloByte < 1) {  
    180.             return size + "Byte";  
    181.         }  
    182.   
    183.         double megaByte = kiloByte / 1024;  
    184.         if (megaByte < 1) {  
    185.             BigDecimal result1 = new BigDecimal(Double.toString(kiloByte));  
    186.             return result1.setScale(2, BigDecimal.ROUND_HALF_UP)  
    187.                     .toPlainString() + "KB";  
    188.         }  
    189.   
    190.         double gigaByte = megaByte / 1024;  
    191.         if (gigaByte < 1) {  
    192.             BigDecimal result2 = new BigDecimal(Double.toString(megaByte));  
    193.             return result2.setScale(2, BigDecimal.ROUND_HALF_UP)  
    194.                     .toPlainString() + "MB";  
    195.         }  
    196.   
    197.         double teraBytes = gigaByte / 1024;  
    198.         if (teraBytes < 1) {  
    199.             BigDecimal result3 = new BigDecimal(Double.toString(gigaByte));  
    200.             return result3.setScale(2, BigDecimal.ROUND_HALF_UP)  
    201.                     .toPlainString() + "GB";  
    202.         }  
    203.         BigDecimal result4 = new BigDecimal(teraBytes);  
    204.         return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString()  
    205.                 + "TB";  
    206.     }  
    207.       
    208.       
    209.     public static String getCacheSize(File file) throws Exception {  
    210.         return getFormatSize(getFolderSize(file));  
    211.     }  
    212.       

    1. }  
    本文转载自:IT_xiao小巫 
    博客地址:http://blog.csdn.net/wwj_748


    展开全文
  • memorySize2Byte, byte2MemorySize : 以 unit 为单位的内存大小与字节数互转 byte2FitMemorySize : 字节数转合适内存大小 timeSpan2Millis, millis2TimeSpan : 以 unit 为单位的时间长度与毫秒时间戳互转 millis2...
  • 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——Style样式的定义 3.7 简易的按钮事件——Button事件处理 3.8 手机页面的转换——setContentView的应用 3.9 调用另一个Activity...
  • |--应用之获得占用内存大小 |--应用之通过包名开启一个应用 |--应用之隐式意图开启设置界面 |--应用启动之检查版本更新及初始化 |--延时任务的工具类 |--异常之UncaughtExceptionHandler全局捕获处理 |--异步任务...
  • iPhone开发秘籍(第2版)--源代码

    热门讨论 2012-12-11 13:51:22
    1.3.3 手机 6 1.3.4 Core Location的差异 6 1.3.5 振动支持和接近传感器 6 1.3.6 处理器速度 6 1.3.7 OpenGL ES 7 1.4 平台限制 7 1.4.1 存储限制 7 1.4.2 数据访问限制 7 1.4.3 内存限制 7 1.4.4 交互...
  • 手机 pdf 阅读器

    2009-02-12 23:00:29
    (另外,对Anyview来说,仅打算支持HTML的可阅读部分,请勿使用浏览器的要求来要求Anyview,如果你需要一款浏览器,推荐航海家(小小的广告一下)对于大多数手机来说,如果不将JAVA的内存大小改为2M以上,请不要在加载...
  • 在iOS开发中,在运行代码之后可能会做多个屏幕...要想解决这个问题,方法就是通过修改内存大小来启动更多的模拟器,最好的方法就是通过关闭/重启模拟设备和其他Mac应用程序释放资源。 一、错误问题提示: Unabl...

    iOS开发中,在运行代码之后可能会做多个屏幕尺寸的对比,来查看界面控件的布局和位置,但是如果同时打开多个Xcode里面的模拟器手机尺寸之后,就不能再打开手机模拟器了,原因是模拟器的内存超出最大的限额,苹果开发者官网也有相关的解释文档,要想解决这个问题,方法就是通过修改内存大小来启动更多的模拟器,最好的方法就是通过关闭/重启模拟设备和其他Mac应用程序释放资源。

    一、错误问题提示:

    Unable to boot device due to insufficient system resources.

    Please see Simulator Help for information on adjusting system settings to allow more simulated devices to boot at once.

    maxUserProcs: 709, runningUserProcs: 623, enforcedProcBuffer: 144

    二、引起错误的原因

    运行多个模拟器之后,使得模拟器内存超出最大限额

     

    三、解决方法

    方法一、引起该问题是模拟器的内存超出最大限额,可以通过修改内存大小来启动更多的模拟器

    终端命令步骤:

    1、首先查看当前权限:launchctl limit

    2、修改多文件的限制,也就是修改maxfiles项,使用命令:sudo launchctl limit maxfiles 1024 unlimited   //1024是maxfiles项数,根据实际情况来设置

    方法二、参考苹果开发者官网的文档说明
                https://help.apple.com/simulator/mac/9.0/index.html#/dev8a5f2aa4e

    原文如下:

    Insufficient resources error when trying to launch a simulator尝试启动模拟器时出现资源不足错误

    Launching a simulator can result in an error alert that there are insufficient system resources. This usually occurs when launching a simulator exceeds either the maximum number of active processes or the maximum number of open files. The best solution is to free up resources by closing simulated devices and other Mac applications.启动模拟器会导致系统资源不足的错误警报。当启动模拟器超过活动进程的最大数量或打开文件的最大数量时,通常会发生这种情况。最好的解决方案是通过关闭模拟设备和其他Mac应用程序释放资源

    If it is not possible to free up enough resources, you can raise the system limits until the Mac is restarted.如果无法释放足够的资源,可以提高系统限制,直到Mac重新启动。

    Note: It is possible to exceed the maximum number of process or the maximum number of open files by launching other programs or opening other files some time after you have launched a simulator. If this occurs, Simulator does not give you a warning. The effects depend on what program is trying to launch the process or open the file.在启动模拟器后的某个时间,通过启动其他程序或打开其他文件,可能会超过最大进程数或最大打开文件数。如果发生这种情况,模拟器不会向您发出警告。效果取决于哪个程序试图启动进程或打开文件。

     

     以上就是本章全部内容,欢迎关注三掌柜的微信公众号、微博,欢迎关注!

    三掌柜的微信公众号:

    三掌柜的新浪微博:

     

    展开全文
  • KeNan

    2007-08-20 11:16:22
    提供了源代码,使用者可任意修改。该程序在工作中,对手机程序的移植,了解手机参数,提供了很大的帮助。 虽然JBenchMark上有很多常用参数查询,但远没有自己检测的数据可信。 这个小程序可以检测: - FPS...
  • 认识手机的的存储区间 11  手机系统的组成 11  NOR 11  RAM 12  NAND 12  什么是BootLoader? 12  BootLoader 12  引导系统启动 13  下载BIN文件 13  关机充电 13  如何下载BootLoader 13  ...
  • 认识手机的的存储区间 11  手机系统的组成 11  NOR 11  RAM 12  NAND 12  什么是BootLoader? 12  BootLoader 12  引导系统启动 13  下载BIN文件 13  关机充电 13  如何下载BootLoader 13  ...
  • 比如设置手机目录商品通过内存大小自动关联,设置凡是内存大小相差2M的手机就自动关联。在每个具体手机商品详细页的‘相关商品’栏目里显示和该手机内存大小相差2M内的其他商品手机。 以上都是通用商城系统的基本...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
  • vc++ 应用源码包_5

    热门讨论 2012-09-15 14:45:16
    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
  • vc++ 应用源码包_3

    热门讨论 2012-09-15 14:33:15
    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
    发送消息,同时对文本进行少量修改,发送end-of-messages消息,最后关闭连接。 Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器  Tcp服务端与客户端的JAVA实例源代码,一个简单...
  • vc++ 应用源码包_4

    热门讨论 2012-09-15 14:38:35
    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
  • 1、【App 信息查看】 快速查看手机信息,App 基础信息、签名相关、权限信息的渠道,避免去手机设置查找或者查看项目源代码的麻烦; 2、【开发者选项 Android特有】 一键跳转开发者选项,避免安卓由于平台差异导致的...
  • iphone开发笔记

    2011-02-28 17:03:12
    下文件之前获取到文件大小代码 19 网络编程总结 iphone 19 Iphone 实现画折线图 25 让iPhone屏幕常亮不变暗的方法 27 苹果开发网络编程知识总结 27 如何隐藏状态栏 33 .m 文件与.mm文件的区别 33 NSLog(@"afd")与 ...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
    发送消息,同时对文本进行少量修改,发送end-of-messages消息,最后关闭连接。 Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器  Tcp服务端与客户端的JAVA实例源代码,一个...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
    发送消息,同时对文本进行少量修改,发送end-of-messages消息,最后关闭连接。 Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器  Tcp服务端与客户端的JAVA实例源代码,一个...

空空如也

空空如也

1 2 3 4 5
收藏数 99
精华内容 39
关键字:

手机修改内存大小代码