I'm not sure what you're going after, and you haven't said very well.. In any case, "extending" your app is pretty hard. You say that you want to distribute the code for your app, in a third party jar, that the users won't have access to? Is this because you don't want your code to get taken? If so, then there is absolutely no way this is possible. If the vm is running the code, then someone can access it. Imagine, for example, a hacked vm that simply dumps the code it's executing to foil whatever plans you have. (This is easily done, by the way, ...)
If you don't want the user to see your code, your only option is to run that code somewhere else. I.e., on a remote server... kris On Wed, Jul 18, 2012 at 3:44 AM, Harsh Vardhan <[email protected]> wrote: > Hey, > > I have an interface called IFunctionDictionary which has a function called > Execute. In my main thread run() function I register few functions and there > corresponding key/command. In the same function I wait for key From socket > and when I receive it I call the interface function Execute() which intern > implements behavior in the main thread Execute Function definition. > > I have run into a bump here: > > In my main thread run() function I register the key and the function in a > hash map. > > public void run() > > { > > _this = this; > > > try > > { > > FunctionDictionary.RegisterFunction(String.valueOf(CONSTANTS.INITIALIZE), > new IFunctionDictionary() > > { > > public void Execute() > > { > > _this.m_init(); > > } > > }); > > > > this.m_localServerSocket = new > ServerSocket(InitializeTeacherJar.getLocalPort()); > > this.m_localServerSocket.setReuseAddress(true); > > this.m_localServerSocket.setSoTimeout(100000); > > this.m_localSocket = m_localServerSocket.accept(); > > while (true) > > { > > ApplicationLog.log("Flex Listener Thread Started:: Waiting for Server > Socket", true); > > if (this.m_localSocket != null) > > ApplicationLog.log("Flex Thread:: Flex socket created at port no:", true); > > try > > { > > BufferedReader in = new BufferedReader(new > InputStreamReader(this.m_localSocket.getInputStream())); > > line = null; > > while ((line = in.readLine()) != null) > > { > > this.m_command = line; > > this.m_commandParameters = this.m_command.split("#"); > > FunctionDictionary.Execute(this.m_commandParameters[0]); > > } > > } > > catch (Exception e) > > { > > ApplicationLog.log("Exception Flex Listener Process Command" + > e.getMessage(), true); > > } > > } > > } > > catch (Exception e) > > { > > ApplicationLog.log("Exception Flex Listener Thread: cant create server > socket." + e.getMessage(), true); > > } > > } > > > The m_init gets called when I receive the key from socket. > > private void m_init() > > { > > if (_this.m_isInitialized) > > return; > > else > > { > > try > > { > > InitializeTeacherJar.instantiate(_this.m_command.split("#")[1], > _this.baseContext, _this.m_command.split("#")[2]); > > _this.m_parent = InitializeTeacherJar.getInstance(); > > _this.m_parent.setMyFlexServer(_this.m_localServerSocket); > > _this.m_parent.setMyFlexSocket(_this.m_localSocket); > > > _this.m_isInitialized = true; > > } > > catch (Exception e) > > { > > //Log it > > } > > } > > } > > > The mechanism it self is fine, no bugs, no crash. But when I come to the > Ist line of the m_init function the thread crashes abruptly. > > Is there something missing...!! > > > On Tue, Jul 17, 2012 at 5:02 PM, Harsh Vardhan <[email protected]> > wrote: >> >> Thanks Ali. >> >> I am aware of the what the design patterns are, what i needed to know is >> which one hits the spot in my case. Anyways I have gone ahead with something >> that I have figured after some head scratching and will let you all know if >> i succeed. >> >> >> >> >> On Tue, Jul 17, 2012 at 12:42 PM, Ali Chousein <[email protected]> >> wrote: >>> >>> You cannot extend case statements in your code dynamically, but take a >>> look at the strategy design pattern >>> (http://en.wikipedia.org/wiki/Strategy_pattern). I think that's what you >>> need. Design patterns are not Android specific by the way, they are just a >>> set of best practices in designing software. >>> >>> ------------------------------------------------- >>> Ali Chousein >>> https://play.google.com/store/apps/details?id=com.apps.social_nav >>> https://play.google.com/store/apps/details?id=com.apps.weather_buddy >>> http://www.paygol.com/android/implementation >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Android Developers" group. >>> To post to this group, send email to [email protected] >>> To unsubscribe from this group, send email to >>> [email protected] >>> For more options, visit this group at >>> http://groups.google.com/group/android-developers?hl=en >> >> >> >> >> -- >> Regards >> Harsh Vardhan >> > > > > -- > Regards > Harsh Vardhan > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

